gpt4 book ai didi

uinavigationcontroller - iOS Swift 中的 navigationController!.pushViewController 与 PresentViewController

转载 作者:行者123 更新时间:2023-12-02 01:26:26 24 4
gpt4 key购买 nike

在 UINavigation 中推送 ViewController 与在下一个 View 中更改值时以模态方式呈现 ViewController 有何含义?

例如,为什么第一个有效但第二个无效?

第一:

var textController: TextViewController
textController = self.storyboard!.instantiateViewControllerWithIdentifier("TextViewController") as! TextViewController
presentViewController(textController, animated: false, completion: nil)
textController.textDetail.text = Categories[indexPath.row]

第二:

var textController: TextViewController
textController = self.storyboard!.instantiateViewControllerWithIdentifier("TextViewController") as! TextViewController
self.navigationController!.pushViewController(textController,animated:true)
textController.textDetail.text = Categories[indexPath.row]

插入导航堆栈时,我无法更改标签的值。

最佳答案

看起来好像在调用 presentViewController 方法时, View Controller 的 View 实际上是在调用期间加载的,而在调用导航 Controller 上的 pushViewController 时, View 本身在调用后加载。

您可以通过在呈现/推送 View Controller 之前和之后打印到控制台以及在 TextViewController 的 viewDidLoad 方法中打印到控制台来自行测试。

需要加载 View 才能加载 textDetail 变量(您没有这么说,但我假设这是一个 IBOutlet)和 textDetail需要加载变量才能修改其 text 属性。

要使用pushViewController,您可以在TextViewController类上设置一个变量,并覆盖其viewDidLoad方法,然后您可以在其中设置textDetail 变量的文本属性。

关于uinavigationcontroller - iOS Swift 中的 navigationController!.pushViewController 与 PresentViewController,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36830965/

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