在UINavigation中推送ViewController與在下一個視圖中更改值方面呈現ViewController的含義有什麼關係?navigationController!.pushViewController與iOS中的presentViewController Swift
例如,爲什麼第一個工作但不是第二個?
第一:
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]
我不能獲取標籤的價值在導航堆棧推時改變。
1.你如何實例化'textController'? 2.你如何實例化'textDetail'?假設1. textController是一個UIViewController,並且2.在這兩種情況下,您剛剛在此代碼之前實例化了'textController',並且3.'textDetail'是一個IBOutlet,它不會在'textController'的初始化過程中實例化,並且在任何情況下都無法設置其文本值,因此您需要稍後在View Controller生命週期中等待。 –
我添加了實例化它的代碼。第一個改變標籤的值,但第二個給我一個解包錯誤 –
解包錯誤發生在哪裏?它發生在線上:'self.navigationController!.pushViewController(textController,animated:true)'?如果沒有:這兩個代碼塊是否在viewController代碼中的相同位置發生?你如何實例化'textDetail'? –