开发者

How to tell when back button is pressed in a UINavigationControllerStack

开发者 https://www.devze.com 2022-12-24 08:16 出处:网络
Is it possible to check when the back button is pressed in 开发者_JAVA技巧a UINavigationController stack? I\'ve tried adding a action and target to self.navigationItem.backBarButtonItem to no avail.

Is it possible to check when the back button is pressed in 开发者_JAVA技巧a UINavigationController stack? I've tried adding a action and target to self.navigationItem.backBarButtonItem to no avail.

Anyone have any solutions?


You can try my way:

Write in your ViewController:

UIBarButtonItem *backBt = [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"imageNameOfBackButton"] style:UIBarButtonItemStyleBordered target:self action:@selector(backBt_touch:)];
self.navigationItem.leftBarButtonItem = backBt;

And action method:

- (void)backBt_touch:(id)sender {
  [self.navigationController popViewControllerAnimated:YES];
}

You have to take a photo of back button you want.

Animation of hiding back button when viewController is popped is not the same animation of iOS!

P/s:

How to tell when back button is pressed in a UINavigationControllerStack

I've get it from simulator. Hope it useful! :)


One way to get at this would be to override viewWillDisappear in the UIViewController that is visible when the back button is pressed:

- (void)viewWillDisappear:(BOOL)animated {
    if (self.isMovingFromParentViewController) {
        // handle back button press
    }
}

Obviously this doesn't directly intercept the press on the back button itself, but it gives you a chance to perform logic at that time.

0

精彩评论

暂无评论...
验证码 换一张
取 消