iOS 导航栏 : change left bar button from menu to back

标签 ios uinavigationbar back-button

我有一个使用侧边菜单的应用程序,它有几个可以从菜单访问的主屏幕和只能从这些屏幕访问的其他屏幕。

我想要的是在导航栏上有一个菜单按钮,用于打开菜单并且只能在主屏幕上可见。在其他屏幕上,我希望有一个后退按钮,而不是菜单按钮。

我已经像这样放置了菜单按钮:

self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"IconMenu"] style:UIBarButtonItemStylePlain target:self.revealViewController action:@selector(revealToggle:)];

但我不知道如何在需要时使用后退按钮更改它。

最佳答案

假设“主屏幕”不是指导航 View Controller 中与所选侧边菜单项对应的根(第一个) View Controller ,这可能是您问题的解决方案:您可以为所有 View Controller 创建一个父类(super class),说 MyBaseViewController 并重写 viewWillAppear: 方法,这将根据它是否是“主屏幕”来确定它是否应该具有默认后退按钮或“revealSideMenu”按钮。

 - (void)viewWillAppear:(BOOL)animated
{
    [super viewWillAppear:animated];
    if (self == [self.navigationController.viewControllers firstObject]) {
        self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithImage:[UIImage    imageNamed:@"IconMenu"] style:UIBarButtonItemStylePlain target:self.revealViewController action:@selector(revealToggle:)];
    }
}

关于iOS 导航栏 : change left bar button from menu to back,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19584807/

相关文章:

ios - UIActivityTypePostToFacebook 如何发布图像和文本 xcode ios 文本的 NSDictionary 键

ios - 检查 iOS 设备代数

ios - 由于现有项目的 Xcode 12 uitextfields 具有黑色背景

ios - 如何在导航栏中添加渐变-iOS

ios - 透明导航栏仍然显示

android - 从 phonegap 中的 android 硬件后退按钮退出应用程序

java - 按后退键 Activity 不会返回

ios - AFNetworking 在没有事件互联网连接的情况下检测 wifi 连接

ios - 如何立即隐藏单个 View Controller 上的导航栏?

angular6 - 使用 Angular 6 中的浏览器后退按钮更改路线