このストーリーボード テスト プロジェクトについて 2 つの質問があります。私は Xcode を初めて使用しますが、この問題の解決策が見つかりません。
ビュー コントローラー A はルート ビュー コントローラーです。ビュー B とビュー C は、そこから別々に拡張されます。Table View は View C から拡張されます。View B には 2 つのボタンがあります - To Table View と View B です。
1) ボタン To Table View は、Table View を押します。表のセルに文字列が含まれています。セルを押すと、view は View Controller C に戻り、その文字列が text Field に表示されます。
問題 1: テーブル ビューからビュー C にモーダル セグエを使用すると、メソッド prepareForSegue で textField が更新されますが、ビュー C のナビゲーション バーが失われます。
問題2:テーブルビューからビューCへのプッシュセグエを使用すると、ビューCの戻るボタンはビューAを指さず、テーブルビューを指します。
解決?テキストフィールドをクリックして選択し、戻るボタンを押してビュー C を更新します。しかし、どのように実装するのでしょうか?
または、より良い解決策はありますか?
2) ビュー C のボタンを押してビュー B に移動します。プッシュ セグエを使用すると、ビュー B の [戻る] ボタンがビュー C を指します。モーダル プッシュを使用すると、ビュー B はナビゲーション バーを失います。
戻るボタンがビューAを指しているということで、ビューBにセグエをプッシュすることはできますか?
[編集]
ビューコントローラー間でデータを渡すために、NSUserDefaults を使用しました。ビュー間で単純なデータ(文字列、数値など)を渡す非常に効率的な方法であることが判明しました
MODAL セグエに使用するのは難しいですか? 目的の tableViewController に追加します
-(void)tableview:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
//define user defaults
NSUserDefaults *defaults = [NSUserDefaults standardDefaults];
NSString *testString = @"test";
[defaults setObject:testString] forKey:@"test1"];
[defaults synchronize];
//dismiss ViewController
[self dismissViewControllerAnimated:YES completion:nil]; }
プッシュセグエを使用してView Controllerを閉じ、ナビゲーションシーケンスをスキップする(シーケンスからビューを削除する)場合は、置き換えます
[self dismissViewControllerAnimated:YES completion:nil];
と
[self.navigationController popViewControllerAnimated:YES];