【发布时间】:2010-11-15 22:38:49
【问题描述】:
我正在尝试覆盖导航控制器中后退按钮的默认操作。我在自定义按钮上提供了一个目标操作。奇怪的是,当通过 backbutton 属性分配它时,它不会注意它们,它只是弹出当前视图并返回到根:
UIBarButtonItem *backButton = [[UIBarButtonItem alloc]
initWithTitle: @"Servers"
style:UIBarButtonItemStylePlain
target:self
action:@selector(home)];
self.navigationItem.backBarButtonItem = backButton;
只要我通过leftBarButtonItem 上的navigationItem 设置它,它就会调用我的操作,但是按钮看起来像一个普通的圆形按钮,而不是带箭头的返回按钮:
self.navigationItem.leftBarButtonItem = backButton;
如何让它在返回根视图之前调用我的自定义操作?有没有办法覆盖默认的后退操作,或者有没有在离开视图时总是调用的方法(viewDidUnload 不这样做)?
【问题讨论】:
-
action:@selector(home)];需要一个 : 在选择器操作之后:@selector(home:)];否则将无法正常工作
-
@PartySoft 除非该方法用冒号声明,否则这是不正确的。让按钮调用不带任何参数的选择器是完全有效的。
-
为什么 Apple 不提供形状像后退按钮的按钮?看起来很明显。
标签: ios iphone cocoa-touch uinavigationcontroller uibarbuttonitem