我想覆盖self.navigationItem.backBarButtonItem
的 * 目标 * 和 * 操作 *,
我试过:
UIBarButtonItem *backButton = [[UIBarButtonItem alloc] initWithTitle:@"Back"
style:UIBarButtonItemStyleBordered
target:self
action:@selector(backButtonOverrideAction:)];
[self.navigationItem setLeftBarButtonItem:backButton];
它是工作,但我想使用默认箭头:
我也尝试过:
UIBarButtonItem *backButton = self.navigationItem.backBarButtonItem;
[backButton setTarget:self];
[backButton setAction:@selector(backButtonOverrideAction:)];
但不幸的是,它不工作..你有任何想法如何做到这一点?
8条答案
按热度按时间hc2pp10m1#
仍然,无法直接访问
self.navigationItem.backBarButtonItem
上的更改***目标***和*操作。我最终使用了我尝试的第一个...并得到了我的(自定义)图像。
而...
fae0ux8s2#
不能为后退BarButton分配操作。解决方法是创建自定义后退按钮。
igetnqfo3#
在swift 3.1中
}
bvjxkvbb4#
这适用于11.3:
这个解决方案是基于搜索活动子视图直到对应backBarButtonItem然后添加一个UITapGestureRecognizer,使其捕获元素上的事件。
vfhzx4xs5#
摘录自Apple Doc:
为导航项指定按钮时,必须使用UIBarButtonItem对象。如果要在导航栏中显示自定义视图,则必须将这些视图 Package 在UIBarButtonItem对象中,然后再将其添加到导航项。
这就意味着你根本不能使用问题中的方法2,而方法1才是正确的方法。
z3yyvxxp6#
希望能帮到你...
或者您可以在导航栏中添加左栏按钮项,并为其设置您自己的选择器功能。
esbemjvw7#
“backAction”(iOS16中的新功能)
如果导航栏中已显示后退按钮,则设置此属性将替换其操作,而不修改其外观。否则,设置此属性将生成带有指定操作的图像或标题的后退按钮,除非使用UINavigationItemStyleEditor导航样式。
https://developer.apple.com/documentation/uikit/uinavigationitem/3987966-backaction?language=objc
0s7z1bwu8#
你得做些什么
在这里,您还必须处理控制器的弹出。