UINavigationでViewControllerをプッシュすることと、次のビューで値を変更するという観点からViewControllerをモーダルに提示することの意味は何ですか?navigationController!.pushViewControllerとiOS SwiftのpresentViewControllerとの比較
たとえば、最初の作品はなぜ2番目の作品ではないのですか?
まず:
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のライフサイクルを待つ必要があります。 –
私はそれをインスタンス化するコードを追加しました。最初のものはラベルの値を変更しますが、2番目のものはアンラップエラーです –
アンラッピングエラーはどこで発生していますか?これは、 'self.navigationController!.pushViewController(textController、animated:true)'の行で発生していますか?そうでない場合:viewControllerコード内の同じ場所にこれら2つのコードブロックが発生していますか?どのように 'textDetail'をインスタンス化していますか? –