如何隐藏iPhone导航栏上的“后退”按钮?

时间:2009-03-05 10:15:23

标签: ios objective-c iphone navigation uinavigationcontroller

我添加了一个导航控件,可以在我的应用中切换视图。但有些观点不应该有“后退”(前一个标题)按钮。有关如何隐藏后退按钮的任何想法?

14 个答案:

答案 0 :(得分:795)

目标-C:
    self.navigationItem.hidesBackButton = YES;

夫特:
    navigationItem.hidesBackButton = true

答案 1 :(得分:36)

最好的方法是组合这些,所以即使你手动设置它也会隐藏后退按钮:

self.navigationItem.leftBarButtonItem=nil;
self.navigationItem.hidesBackButton=YES;

答案 2 :(得分:19)

使用波纹管代码隐藏后退按钮...

[self.navigationItem setHidesBackButton:YES animated:YES];

[self.navigationItem setHidesBackButton:YES];

此外,如果您有自定义UINavigationBar,请尝试以下代码

self.navigationItem.leftBarButtonItem = nil;

答案 3 :(得分:5)

使用代码:

 self.navigationItem.backBarButtonItem=nil;

答案 4 :(得分:5)

Swift

将此添加到控制器

override func viewDidLoad() {
    super.viewDidLoad()
    self.navigationItem.setHidesBackButton(true, animated: false)
}

答案 5 :(得分:3)

在UIViewController的函数viewDidLoad中使用代码:

self.navigationItem.hidesBackButton = YES;

答案 6 :(得分:2)

不要忘记您需要在具有导航控制器的对象上调用它。例如,如果你有一个导航控制器用RootViewController推动一个标签栏控制器,那么在RootViewController上调用copy($tempFilename, $strFilename); unlink($tempFileName); 将什么都不做。您实际上必须致电self.navigationItem.hidesBackButton = YES

答案 7 :(得分:2)

不要忘记我们现在有幻灯片回到手势。您可能也想删除它。 如有必要,请不要忘记重新启用它。

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

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

答案 8 :(得分:1)

在视图控制器中添加此代码

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

答案 9 :(得分:1)

对我来说,上述似乎都没有效果,它没有视觉效果。我正在使用故事板,其内容是“嵌入式”#34;在导航控制器中。

然后我在代码级添加我的menuItems,并且由于某种原因," backButton"在可视化调试视图层次结构时可见,我的menuItem图标显示在不可见的"后退按钮"。

之下。

我按照各种钩子方法的建议尝试了设置并且没有效果。然后我尝试了一种更残酷的方法并迭代子视图,这也没有效果。

我检查了我的图标尺寸,看起来还不错。 在提到苹果人机界面指南后,我确认我的图标是正确的。 (在我的情况下,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];

答案 10 :(得分:1)

在我设置

的所有情况下,它都不适合我

self.navigationItem.hidesBackButton = YES;

在viewWillAppear或ViewDidLoad中,但在我在viewController的init中设置它时效果很好。

答案 11 :(得分:0)

尝试这个- self.navigationController?.navigationItem.hidesBackButton = true

答案 12 :(得分:0)

在c#或Xamarin.ios中, this.NavigationItem.HidesBackButton = true;

答案 13 :(得分:0)

createForm() {
  this.form = this.fb.group({
    products: this.fb.array([]),
  });
}

addRow() {
  const rows = this.form.get('products') as FormArray;
  rows.push(
    this.fb.group({
      product_id: [null],
    })
  );
}

如果您在didLoad或loadView中使用此代码块,但效果并不理想。İf仔细观察,您可以看到视图加载时隐藏了后退按钮。看起来很奇怪。

什么是完美的解决方案?

从componentView (命令+ Shift + L)中将 BarButtonItem 组件添加到目标viewControllers导航栏中。

从右侧面板中选择BarButtonItem set Title =“”

enter image description here