问候,
我有以下代码来捕获后退按钮的事件:
[self.navigationItem setBackBarButtonItem:[[UIBarButtonItem alloc] initWithTitle:@"Logout" style:UIBarButtonItemStylePlain target:self action:@selector(doLogout:)]];
这是我的doLogout:
-(void) doLogout:(id)sender{
NSLog(@"hi");
}
Everything编译并运行正常,后退按钮文本更改为“Logout”。
唯一的问题是我的doLogout函数永远不会被调用!!!
我该怎么办?我现在已经坚持了一个小时......;(
非常感谢,
答案 0 :(得分:0)
官方文件:
当此项目是导航栏的后退项目时 - 当它是顶部项目下方的下一个项目时 - 它可以表示为导航栏上的后退按钮。使用此属性指定后退按钮。 您设置的后栏按钮项目的目标和操作应为零。默认值为显示导航项标题的条形按钮项。
答案 1 :(得分:0)
而不是试图捕捉“后退按钮事件”,为什么不只是尝试覆盖UIViewController viewDidUnload
?
答案 2 :(得分:0)
您可以在子视图控制器上设置backBarButtonItem
,而不是在顶视图控制器上设置leftBarButtonItem
。这可以是任意栏按钮项,所有操作消息都应该正常传递。因为这取代了后退按钮,所以您必须确保在其中一个操作方法中手动弹出子控制器。