如何隐藏iPhone上的导航栏上的“返回”button?
我添加了一个导航控件来切换我的应用程序中的视图。 但一些意见不应该有“返回”(前面的标题)button。 有关如何隐藏后退button的任何想法?
Objective-C的:
self.navigationItem.hidesBackButton = YES;
迅速:
navigationItem.hidesBackButton = true
最好的方法是将这些组合起来,所以即使手动设置,也会隐藏后退button:
self.navigationItem.leftBarButtonItem=nil; self.navigationItem.hidesBackButton=YES;
用波纹pipe代码隐藏后退button…
[self.navigationItem setHidesBackButton:YES animated:YES];
要么
[self.navigationItem setHidesBackButton:YES];
另外,如果你有自定义的UINavigationBar
然后尝试波纹pipe代码
self.navigationItem.leftBarButtonItem = nil;
使用代码:
self.navigationItem.backBarButtonItem=nil;
在Swift中 :
将此添加到控制器
override func viewDidLoad() { super.viewDidLoad() self.navigationItem.setHidesBackButton(true, animated: false) }
在UIViewController的函数viewDidLoad中使用代码:
self.navigationItem.hidesBackButton = YES;
不要忘记,您需要在具有导航控制器的对象上调用它。 例如,如果你有一个导航控制器推动与一个RootViewController的标签栏控制器,在RootViewController上调用self.navigationItem.hidesBackButton = YES
将不会执行任何操作。 你实际上必须调用self.tabBarController.navigationItem.hidesBackButton = YES
不要忘记,我们现在有幻灯片背后的姿态。 你可能也想删除这个。 如果有必要,不要忘记重新启用它。
if ([self.navigationItem respondsToSelector:@selector(hidesBackButton)]) { self.navigationItem.hidesBackButton = YES; } if ([self.navigationController respondsToSelector:@selector(interactivePopGestureRecognizer)]) { self.navigationController.interactivePopGestureRecognizer.enabled = NO; }
在你的视图控制器中添加这个代码
UIView *myView = [[UIView alloc] initWithFrame: CGRectMake(0, 0, 300, 30)]; UIBarButtonItem *btnL = [[UIBarButtonItem alloc]initWithCustomView:myView]; self.navigationItem.leftBarButtonItem = btnL;
对我来说,上述都不起作用,没有视觉效果。 我正在使用故事板,在导航控制器中“embedded”视图。
然后我在代码级别添加我的menuItems,出于某种原因,当视觉debugging视图层次时,“backButton”是可见的,我的menuItem图标显示在不可见的“后退button”下面。
我尝试了各种钩子方法的build议,并没有任何效果。 然后,我尝试了一个更残酷的方法,迭代子视图也没有效果。
我检查了我的图标大小,似乎没有问题。 在提到他苹果人机界面指南后,我确认我的图标是正确的。 (在我的情况24px 48px 72px小1像素)。
最奇怪的部分,然后是实际的修复…
当添加BarButton Item给它一个至less有一个字符的标题 ,在我的情况下是一个空格字符。
希望这可以帮助别人。
//left menu - the title must have a space UIBarButtonItem *leftButtonItem = [[UIBarButtonItem alloc] initWithTitle:@" " <--THE FIX style:UIBarButtonItemStylePlain target:self action:@selector(showMenu)]; leftButtonItem.image = [UIImage imageNamed:@"ic_menu"]; [self.navigationItem setLeftBarButtonItem:leftButtonItem];