我添加了一个导航控件在我的应用程序中的视图之间切换。但一些视图不应该有“返回”(前一个标题)按钮。关于如何隐藏后退按钮有什么想法吗?
当前回答
当我设置时,它并不是在所有情况下都对我有效
self.navigationItem.hidesBackButton = YES;
在viewWillAppear或ViewDidLoad中,但当我在viewController的init中设置它时,工作得很好。
其他回答
self.navigationItem.setHidesBackButton(true, animated: true)
将此代码添加到视图控制器中
UIView *myView = [[UIView alloc] initWithFrame: CGRectMake(0, 0, 300, 30)];
UIBarButtonItem *btnL = [[UIBarButtonItem alloc]initWithCustomView:myView];
self.navigationItem.leftBarButtonItem = btnL;
对我来说,上面这些方法都不管用,没有任何视觉效果。我使用的是带有“嵌入”在导航控制器中的视图的故事板。
然后,我在代码级别添加了我的menuItems,出于某种原因,在视觉调试视图层次结构时,“backButton”是可见的,我的menuItem图标显示在不可见的“back button”下面。
我尝试了各种钩子方法中建议的设置,但没有效果。然后我尝试了一种更残酷的方法,迭代子视图,这也没有效果。
我检查了我的图标大小,似乎没有问题。 在参考了苹果人机界面指南后,我确认我的图标是正确的。(1像素在我的情况下24px 48px 72px)。
最奇怪的部分是实际的修复…
当添加BarButton项目时,给它一个至少有一个字符的标题,在我的例子中是一个空格字符。
希望这能帮助到一些人。
//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];
objective - c: self.navigationItem.hidesBackButton = YES;
迅速: navigationItem。hidesBackButton = true
不要忘记你需要在具有nav控制器的对象上调用它。例如,如果你有一个nav控制器在一个带有RootViewController的标签栏控制器上按下按钮,在RootViewController上调用self.navigationItem.hidesBackButton = YES将什么都不会做。你需要调用self。tabbarcontroller。navigationitem。hidesbackbutton = YES
推荐文章
- 如何使用iOS创建GUID/UUID
- 禁用所呈现视图控制器的交互式撤销
- 点击按钮时如何打开手机设置?
- 如何使用UIVisualEffectView来模糊图像?
- 如何修复UITableView分隔符在iOS 7?
- 故事板中的自定义单元格行高设置没有响应
- 如何改变时间和时区在iPhone模拟器?
- 弹出时强制颤振导航器重新加载状态
- 在Swift中使用自定义消息抛出错误/异常的最简单方法?
- 如何在Swift中获得唯一的设备ID ?
- 我如何知道何时UITableView完成了ReloadData?
- 复制文本到剪贴板与iOS
- 在Swift中根据字符串计算UILabel的大小
- 如何调用手势点击在UIView编程在迅速
- 什么是Swift相当于respondsToSelector?