Uinavigationcontroller 导航控制器!。iOS Swift中的pushViewController与presentViewController
在UINavigation中推送ViewController与在下一个视图中更改值时以模式显示ViewController有什么不同 例如,为什么第一个有效而第二个无效 第一:Uinavigationcontroller 导航控制器!。iOS Swift中的pushViewController与presentViewController,uinavigationcontroller,presentviewcontroller,Uinavigationcontroller,Presentviewcontroller,在UINavigation中推送ViewController与在下一个视图中更改值时以模式显示ViewController有什么不同 例如,为什么第一个有效而第二个无效 第一: var textController: TextViewController textController = self.storyboard!.instantiateViewControllerWithIdentifier("TextViewController") as! TextViewController pre
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
方法时,视图控制器的视图实际上在调用过程中加载,而在导航控制器上调用pushViewController
时,调用后将加载视图本身
您可以通过在显示/按下视图控制器之前和之后打印到控制台,并在TextViewController的viewDidLoad
方法中打印到控制台来测试这一点
需要为要加载的textdeail
变量加载视图(您没有这样说,但我假设这是一个IBOutlet),并且需要加载textdeail
变量才能修改其text
属性
例如,要使用
pushViewController
,您可以在TextViewController
类上设置一个变量,并重写其viewDidLoad
方法,然后可以在textdail
变量上设置text属性。1。如何实例化textController
?2.您如何实例化textDetail
?假设1。textController是一个UIViewController,2。在这两种情况下,您刚刚在这段代码之前实例化了textController
,以及3textDetail
是一个IBOutlet,在textController
的初始化过程中将不会实例化它,并且在任何情况下都无法设置它的文本值,您需要在View Controller生命周期的稍后等待。我添加了实例化它的代码。第一个确实改变了标签的值,但是第二个给了我一个展开错误。展开错误发生在哪里?它是否发生在以下行:self.navigationController!。pushViewController(文本控制器,动画:true)
?如果不是:这两个代码块是否发生在viewController代码中的同一位置?如何实例化textdeail
?它发生在textdeail.text赋值上。我不会在任何地方实例化textDetail。我一次只使用一个街区。第一个可以工作,但当我将代码更改为第二个时,会出现展开错误。