1

現在、2 つのビュー コントローラーがあり、ストーリーボード セグエ (ナビゲーション コントローラー) を介してそれらをリンクしています。ユーザーが最初のビューでボタンを押すと、画面は 2 番目のビューに移動します。2 番目のビューには、ユーザーが詳細情報を編集できるようにテキスト フィールドがあります。戻るナビゲーション ボタンを押したときに、その詳細情報を 2 番目のビュー コントローラーから最初のビュー コントローラーに戻すにはどうすればよいですか?

このコードを使用して、最初のView Controllerから2番目のView Controllerにデータを送信します

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
    SettingsViewController *settingsViewController = [segue sourceViewController];
    [settingsViewController setAddressString:[self addressString]];
    NSLog(@"Settings address string of SettingsViewController to: %@", [self addressString]);
}

2 番目のビュー コントローラーから最初のビュー コントローラーにデータを渡す方法として、現在考えられる唯一のviewWillDisappear方法は、2 番目のビュー コントローラーのメソッドをオーバーライドすることです。しかし、セグエ法を使用して機能する方法はありますか? そして、これを行うための推奨される方法は何ですか?

4

3 に答える 3

1

SettingsViewController のフィールドに対応するプロパティを持つモデル オブジェクトを表すクラスを作成できます。

それを作成し、prepareForSegue メソッドで SettingsViewController に渡し、現在の viewController のプロパティ/ivar に割り当てます。したがって、モデル オブジェクト インスタンスが 2 つの viewController 間で共有されます。フィールドに情報を入力するときは、それをカスタム モデル オブジェクトのプロパティに割り当てます。最初の viewContoller は、共有モデル オブジェクトのプロパティから情報を取得できます。

于 2013-11-07T19:30:29.103 に答える