我正在尝试覆盖导航 Controller 中后退按钮的默认操作。我已经为自定义按钮提供了一个目标操作。奇怪的是,当通过后退按钮属性分配它时,它不会注意它们,它只是弹出当前 View 并返回到根:
UIBarButtonItem *backButton = [[UIBarButtonItem alloc]
initWithTitle: @"Servers"
style:UIBarButtonItemStylePlain
target:self
action:@selector(home)];
self.navigationItem.backBarButtonItem = backButton;
一旦我通过 navigationItem
上的 leftBarButtonItem
设置它,它就会调用我的操作,但是按钮看起来像一个普通的圆形按钮,而不是带箭头的返回按钮:
self.navigationItem.leftBarButtonItem = backButton;
如何让它在返回 Root View 之前调用我的自定义操作?有没有办法覆盖默认的后退操作,或者是否有一个方法在离开 View 时总是被调用(viewDidUnload
不会这样做)?
最佳答案
尝试将其放入要检测按下的 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];
}
关于ios - 在导航 Controller 中设置后退按钮的操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1184474/