我添加了一个导航控件在我的应用程序中的视图之间切换。但一些视图不应该有“返回”(前一个标题)按钮。关于如何隐藏后退按钮有什么想法吗?


当前回答

不要忘记你需要在具有nav控制器的对象上调用它。例如,如果你有一个nav控制器在一个带有RootViewController的标签栏控制器上按下按钮,在RootViewController上调用self.navigationItem.hidesBackButton = YES将什么都不会做。你需要调用self。tabbarcontroller。navigationitem。hidesbackbutton = YES

其他回答

将此代码添加到视图控制器中

UIView *myView = [[UIView alloc] initWithFrame: CGRectMake(0, 0, 300, 30)];
UIBarButtonItem *btnL = [[UIBarButtonItem alloc]initWithCustomView:myView];
self.navigationItem.leftBarButtonItem = btnL;
self.navigationItem.setHidesBackButton(true, animated: true)
navigationItem.leftBarButtonItem = nil
navigationItem.hidesBackButton = true

如果你在didLoad或loadView中使用这个代码块,但工作不完美。İf你仔细看,你可以看到后退按钮隐藏时,你的视图加载。看起来很奇怪。

完美的解决方案是什么?

从componentView (Command + Shift + L)添加BarButtonItem组件到你的目标viewControllers导航栏。

从右侧面板选择BarButtonItem set Title = " "

别忘了,我们现在有滑动到后退的手势。你可能也想把这个去掉。如果有必要,不要忘记重新启用它。

if ([self.navigationItem respondsToSelector:@selector(hidesBackButton)]) {
    self.navigationItem.hidesBackButton = YES;
}

if ([self.navigationController respondsToSelector:@selector(interactivePopGestureRecognizer)]) {
    self.navigationController.interactivePopGestureRecognizer.enabled = NO;
}

不要忘记你需要在具有nav控制器的对象上调用它。例如,如果你有一个nav控制器在一个带有RootViewController的标签栏控制器上按下按钮,在RootViewController上调用self.navigationItem.hidesBackButton = YES将什么都不会做。你需要调用self。tabbarcontroller。navigationitem。hidesbackbutton = YES