1

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];
}

しかし、とにかくビューはポップであり、その後アラートビューが表示され、デリゲートがナビゲーションスタックからすでにポップされているビューコントローラーであるため、アプリがクラッシュします...このシナリオを解決する方法が見つかりません。誰か助けて?

ありがとう!

4

2 に答える 2