12

私は 2 つのcontrollers1st isselfと 2nd isを持っておりmaincontroller、ここmaincontrollerstackを押しているので、戻るボタンが自動的に来ます。

ここでは、ユーザーが戻るボタンを押したときにアラートを出す必要があります。

これどうやってするの?

4

8 に答える 8

20

UINavigationControllerまたは、のデリゲート メソッドを使用できます。このメソッドwillShowViewControllerは、VC の戻るボタンが押されたときに呼び出されます。

- (void)navigationController:(UINavigationController *)navigationController willShowViewController:(UIViewController *)viewController animated:(BOOL)animated;
于 2013-01-10T10:59:32.350 に答える
8

最初に使用して戻るボタンを非表示にします

self.navigationItem.hidesBackButton = YES;

次に、独自のカスタム ボタンを作成します。

UIBarButtonItem *backBtn =[[UIBarButtonItem alloc]initWithTitle:@"back" style:UIBarButtonItemStyleDone target:self action:@selector(popAlertAction:)];
self.navigationItem.leftBarButtonItem=backBtn;
[backBtn release];

あなたのセレクターはここにあります:

- (void)popAlertAction:(UIBarButtonItem*)sender
{
    //Do ur stuff for pop up
}
于 2013-01-10T10:54:43.367 に答える
7

最善かつ最も簡単な方法

プレスを検出したいView Controllerにこれを入れてみてください:

-(void) viewWillDisappear:(BOOL)animated {
    if ([self.navigationController.viewControllers indexOfObject:self]==NSNotFound) {
       // back button was pressed.  We know this is true because self is no longer
       // in the navigation stack.  
    }
    [super viewWillDisappear:animated];
}
于 2014-09-18T11:32:21.330 に答える
2

独自のものを作成し、 のinメソッドUIBarButtonItemとして設定します。leftBarButtonItemviewDidLoadmainController

たとえば、(ここではシステム アイテムを使用しましたが、別のアイテムを作成することもできます。詳細については、クラス リファレンスを参照してください)。

UIBarButtonItem *leftBarButtonItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAdd target:self action:@selector(showAlertView:)];
self.navigationItem.leftBarButtonItem = leftBarButtonItem;

// only if you don't use ARC
// [leftBarButtonItem release];

どこ

- (void)showAlertView:(id)sender
{
    // alert view here...
}
于 2013-01-10T10:53:30.417 に答える
0

アクションを含むカスタムの戻るボタンを追加し、そのアクション メソッドでアラートを設定します。ここからカスタムの戻るボタンを追加できます: http://www.applausible.com/blog/?p=401

于 2013-01-10T10:49:23.667 に答える
0

viewControllerCount - 以前 UINavigationController にあった viewController の数を保持する var です。次に、viewControllerCount > [viewControllers count]かどうかを確認します。そうであれば、戻ることがわかります (つまり、[戻る] ボタンの模倣)。

- (void)navigationController:(UINavigationController *)navigationController
      willShowViewController:(UIViewController *)viewController
                    animated:(BOOL)animated
{
    NSArray *viewControllers = [navigationController viewControllers];

    if (viewControllerCount > [viewControllers count])
    {
        // your code
    }

    viewControllerCount = [viewControllers count];
}
于 2015-06-25T12:36:17.173 に答える
-1

ボタンを作成し、次のようにボタン アクションを指定します。

[self alert];

アラートが表示されたら、はいをタップした後

[self.navigationController popViewController];

この後、

self.navigationController.LeftBarButton = myButton;

これは役立つかもしれません

于 2013-01-10T10:49:50.947 に答える