ios - 将目标添加到导航栏中的库存后退按钮

标签 ios iphone uinavigationbar uinavigationitem

我在 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 时没有被调用。

enter image description here

如何将目标添加到 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/

相关文章:

ios - 音频单元 : Use sound output as input source

ios - 2.10 iPhone 应用程序也必须在 iPad 上运行,无需修改,iPhone 分辨率和 2X iPhone 3GS 分辨率

iphone - 适用于 iPhone 的 FileUploader 插件 (PhoneGap)

ios - 如何将UISearchbar做成矩形并与导航栏合并?

ios - 照片浏览器的方向问题

ios - 显示所有项目源文件?

iphone - [NSMutableData data] 和 [[NSMutableData alloc]init] 的区别

uinavigationbar - 如何在iOS 7中删除UINavigationBar内部阴影?

ios - 在 AppDelegate 中自定义 UISearchBar 和 UINavigationBar 的外观?为什么要在类而不是实例级别进行定制?

ios - 如何通过点击屏幕关闭键盘