Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Uinavigationcontroller 导航控制器!。iOS Swift中的pushViewController与presentViewController_Uinavigationcontroller_Presentviewcontroller - Fatal编程技术网

Uinavigationcontroller 导航控制器!。iOS Swift中的pushViewController与presentViewController

Uinavigationcontroller 导航控制器!。iOS Swift中的pushViewController与presentViewController,uinavigationcontroller,presentviewcontroller,Uinavigationcontroller,Presentviewcontroller,在UINavigation中推送ViewController与在下一个视图中更改值时以模式显示ViewController有什么不同 例如,为什么第一个有效而第二个无效 第一: var textController: TextViewController textController = self.storyboard!.instantiateViewControllerWithIdentifier("TextViewController") as! TextViewController pre

在UINavigation中推送ViewController与在下一个视图中更改值时以模式显示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
方法时,视图控制器的视图实际上在调用过程中加载,而在导航控制器上调用
pushViewController
时,调用后将加载视图本身

您可以通过在显示/按下视图控制器之前和之后打印到控制台,并在TextViewController的
viewDidLoad
方法中打印到控制台来测试这一点

需要为要加载的
textdeail
变量加载视图(您没有这样说,但我假设这是一个IBOutlet),并且需要加载
textdeail
变量才能修改其
text
属性


例如,要使用
pushViewController
,您可以在
TextViewController
类上设置一个变量,并重写其
viewDidLoad
方法,然后可以在
textdail
变量上设置text属性。

1。如何实例化
textController
?2.您如何实例化
textDetail
?假设1。textController是一个UIViewController,2。在这两种情况下,您刚刚在这段代码之前实例化了
textController
,以及3
textDetail
是一个IBOutlet,在
textController
的初始化过程中将不会实例化它,并且在任何情况下都无法设置它的文本值,您需要在View Controller生命周期的稍后等待。我添加了实例化它的代码。第一个确实改变了标签的值,但是第二个给了我一个展开错误。展开错误发生在哪里?它是否发生在以下行:
self.navigationController!。pushViewController(文本控制器,动画:true)
?如果不是:这两个代码块是否发生在viewController代码中的同一位置?如何实例化
textdeail
?它发生在textdeail.text赋值上。我不会在任何地方实例化textDetail。我一次只使用一个街区。第一个可以工作,但当我将代码更改为第二个时,会出现展开错误。