如何在导航栏上设置对backButtonItem的操作?

yoz*_*hik 2 iphone back-button uinavigationbar uinavigationcontroller

如何在导航栏上设置对backButtonItem的操作?我有一个导航栏,当我按下后退按钮时,我需要向用户发出一些消息,并且只有在用户的反应之后 - 返回上一个视图.我该怎么做?感谢名单!

- (void)viewDidLoad 
{
    [super viewDidLoad];

    //no one field don't changed yet
    isDirty = FALSE;

    //edited user
    //set default values
    newData = [data copy];

    //setting navigation controller rigth button
    UIBarButtonItem *rightButton = [[UIBarButtonItem alloc] initWithTitle:@"Save"
                                                                style:UIBarButtonSystemItemDone 
                                                                   target: self 
                                                                   action: @selector(saveBtnUserClick)];
    self.navigationItem.rightBarButtonItem = rightButton; 
    [rightButton release];


    UIBarButtonItem *leftButton = [[UIBarButtonItem alloc] initWithTitle:@"Back"
                                                                   style:UIBarButtonSystemItemDone 
                                                                  target: self 
                                                                  action: @selector(backBtnUserClick)];

    self.navigationItem.backBarButtonItem = leftButton;
    [leftButton release];
}
Run Code Online (Sandbox Code Playgroud)

//和我的反应方法

-(IBAction) backBtnUserClick
{
    NSLog(@"\n Back pressed");

    //back to previous view
    [self.navigationController popViewControllerAnimated: TRUE];
}
Run Code Online (Sandbox Code Playgroud)

Chr*_*zzz 11

在头文件中添加<UINavigationControllerDelegate>并在.m中使用它

- (BOOL)navigationBar:(UINavigationBar *)navigationBar shouldPopItem:(UINavigationItem     *)item
{
  //insert your back button handling logic here
  // let the pop happen
  return YES;
}     
Run Code Online (Sandbox Code Playgroud)

  • 这应该是`UINavigationBarDelegate`吗? (4认同)