UIAlertView
ユーザーが特定のビューを離れる前に、ナビゲーション バーの「戻る」ボタンをタップするか、タブ バーのタブ項目の 1 つをタップして確認を求める必要があります。これは 2 つのボタン アラートで、ビューにとどまる場合は [キャンセル]、離れる場合は [同意] です。これを行う必要があるのは、保存されていない変更が離れると失われることをユーザーに認識させる必要があるためです。
メソッドでアラートビューを作成して表示することで、これを実行しようとしましたviewWillDisappear:
:
- (void)viewWillDisappear:(BOOL)animated
{
UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:NSLocalizedString(@"Exit", @"")
message:NSLocalizedString(@"Are you sure you want to leave? Changes will be discarded", @"")
delegate:self
cancelButtonTitle:NSLocalizedString(@"Cancel", @"")
otherButtonTitles:NSLocalizedString(@"Accept", @""), nil];
[alertView show];
[super viewWillDisappear:animated];
}
しかし、とにかくビューはポップであり、その後アラートビューが表示され、デリゲートがナビゲーションスタックからすでにポップされているビューコントローラーであるため、アプリがクラッシュします...このシナリオを解決する方法が見つかりません。誰か助けて?
ありがとう!