これには簡単な答えがあると確信していますが、それを見つけることができないようです (間違った用語を検索している可能性があります)。とにかく、これを行うためのより良い方法があると確信しています:
ユーザーが新しいアイテムを追加できるようにする、homeViewController (アプリがロードされたときの最初の画面) からモーダル ビューを呼び出しています)。かなり簡単です。また、アイテムを編集するときに、detailViewController から SAME モーダル ビューを呼び出します。
これで、(homeViewController で) 次のようなキャンセル アクション (モーダル ビューの追加) ができました。
- (IBAction)cancel:(UIStoryboardSegue *)segue;
{
if ([[segue identifier] isEqualToString:@"CancelInput"]) {
[self dismissViewControllerAnimated:YES completion:NULL];
}
}
これは問題なく動作しますが、詳細コントローラーから同じモーダル ビューを呼び出してこの [SAME] ボタンをクリックすると、モーダルが詳細ページに巻き戻されるのではなく、homeViewController に巻き戻されます。この場合、理想的には、アプリを詳細画面に巻き戻したいと考えています。上記のコードをdetailViewControllerにも配置することで解決できましたが、機能します。しかし、もっと良い解決策があるに違いないと感じています。これは小さなコードですが、保存するためのコードはずっと長くなり、コードの繰り返しは不要に思えます。これを行うためのより良い方法は何ですか? アプリのデリゲートに cancel メソッドを追加する必要がありますか? それはすぐに散らかってしまい、(私の考えでは) MVC パターンを壊すようです。
また、このアプリには絵コンテを使用しています。
ありがとう