現在、次のコードを使用して、同じViewController.hおよびViewController.mファイルを参照している3つのView Controller間でUITextFieldのテキストを渡そうとしています。Xcode:ストーリーボードのタブ付きアプリケーションデータの受け渡し
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
if ([segue.identifier isEqualToString:@"NameOfSegue"]) {
ViewController *ibcVC = segue destinationViewController;
ibcVC.myTextField = self.myTextField;
}
}
次の順序でリンクされた3つのビューコントローラがあります。ViewC1 => ViewC2 => ViewC3。
私のUITextFieldはViewC2にあります。
私はViewC3にプッシュし例えばViewC2、上のボタンをクリックし
は、それが ViewC3にうまくデータを渡します。しかし、私が現在 にいると言うと、と入力して、UITextViewに何かを入力して、次にXcodeが自動的にそこに置くナビゲーションの[戻る]ボタンをクリックすると、 ViewC1期待どおりの罰金。しかし、私が、 ViewC2を押すViewC1のボタンを押すと、私のUITextFieldに入力されたデータ/テキストが消去されたか、nullにリセットされます。DATAはEX正しくプッシュされる:
だから基本的には、ここで視覚的にわずかなデジタルを使用して問題です。 WEナビゲーションEX ON BACKボタンを押すと
ViewC1 => ViewC2 => ViewC3
データが消去されます。
ViewC1 < = ViewC2
どの方法でviewc1に戻るのですか? dismissmodalviewcontroller? – Pochi
これを使用する必要はありません。タブ付きアプリケーションとリンクビューコントローラをPush Segueで使用すると、Xcodeはナビゲーションで戻るボタンを自動的に作成します。私はその部分にストーリーボードを使用しているので、すべてがIBで実行され、プッシュなどを扱うときにプログラミングは必要ありません。しかし、Xcodeがその部分で何をしているのか分かっていれば、 – John