我在 UINavigationBar
中设置标题和后退按钮的值如下:
self.navigationItem.title = @"Post";
[self.navigationController.navigationBar setTitleTextAttributes:@{NSForegroundColorAttributeName : [[UIColor blueColor] colorWithAlphaComponent:0.75f],
NSFontAttributeName : [UIFont fontWithName:@"HelveticaNeue" size:20]}];
[self.navigationController.navigationBar.backItem setTitle:@"Pop Pop !"];
但我无法将目标添加到后退按钮。我尝试了以下方法:
[self.navigationItem.backBarButtonItem setTarget:self];
[self.navigationItem.backBarButtonItem setAction:@selector(goBack:)];
和
self.navigationItem.backBarButtonItem.target = self;
self.navigationItem.backBarButtonItem.action = @selector(goBack:);
但是我的选择器在弹出 viewController 时没有被调用。
如何将目标添加到 backButton,或在弹出 viewController 时调用选择器? (我已经尝试了SO中提到的所有可能的解决方案,但都是徒劳)
编辑:我更愿意编辑常用后退按钮的行为,而不是将自定义按钮设置为后退按钮。
最佳答案
您不能将目标添加到常用的 BackButton,但您可以覆盖 CustomNavigationController 中的 UINavigationBarDelegate 方法,如下所示:
class CustomNavigationController: UINavigationController {
@IBOutlet weak var ibNavigationBar: UINavigationBar!
override func viewDidLoad() {
super.viewDidLoad()
ibNavigationBar.delegate = self
}
}
extension CustomNavigationController: UINavigationBarDelegate {
func navigationBar(navigationBar: UINavigationBar, shouldPopItem item: UINavigationItem) -> Bool {
for viewController in viewControllers {
if viewController.title == "YourTitledViewController" {
popToViewController(viewController, animated: true)
}
}
return false
}
}
关于ios - 将目标添加到导航栏中的库存后退按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20065235/