gpt4 book ai didi

ios - 如何从 ViewController 转移(推送)到另一个嵌入在 NavigationController 中的 ViewController?

转载 作者:行者123 更新时间:2023-11-30 14:06:47 25 4
gpt4 key购买 nike

我在 viewController 中有一个 tableView,当我点击一个单元格时,会向嵌入另一个 viewController 中的导航 Controller 执行推送转场。在第一个 VC 的 swift 文件中,当点击单元格时,我有 prepareForSegue 函数触发,在该函数中,我将一些信息传递给第二个 viewController 中的 textView。

但是当我运行我的应用程序时,当我点击单元格时会出现错误,因为我将目标 VC 转换为第二个 VC 而不是导航 Controller 。但是,如果我将其转换为 navigationController,则 segue 可以工作,但我无法将信息从第一个 VC 传递到第二个 VC 中的 textView。我在这里遗漏了什么吗?

最佳答案

您应该到达导航 Controller 并从堆栈中获取 topViewController。这段代码应该可以工作。

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {

if segue.identifier == "yourSegueIdentifierIsHere" {

let destinationVC = segue.destinationViewController.navigationController?.topViewController as? YourClass
destinationVC. // do something.


}
}

第二个问题答案是:

你可以这样获取indexPath;

let indexPath = tableView.indexPathForSelectedRow

您可以使用yourArray[indexPath.row]

第三个问题答案是;

不能直接在prepareForSegue方法中设置textView.text。您应该在destinationViewController 中创建一个变量,然后可以将数据发送到该变量。像这样在destinationViewController中创建一个变量;

var journalText: String = ""

现在在prepareForSegue方法中发送数据。

destinationVC.journalText = "Some string"

关于ios - 如何从 ViewController 转移(推送)到另一个嵌入在 NavigationController 中的 ViewController?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32290378/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com