我有一个使用侧边菜单的应用程序,它有几个可以从菜单访问的主屏幕和只能从这些屏幕访问的其他屏幕。
我想要的是在导航栏上有一个菜单按钮,用于打开菜单并且只能在主屏幕上可见。在其他屏幕上,我希望有一个后退按钮,而不是菜单按钮。
我已经像这样放置了菜单按钮:
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/