首页 文章

如何隐藏iPhone导航栏上的'Back'按钮?

提问于
浏览
300

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

11 回答

  • 5

    Objective-C的:
    self.navigationItem.hidesBackButton = YES;

    迅速:
    navigationItem.hidesBackButton = true

  • 2

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

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

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

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

    or

    [self.navigationItem setHidesBackButton:YES];
    

    此外,如果你有自定义 UINavigationBar 然后尝试下面的代码

    self.navigationItem.leftBarButtonItem = nil;
    
  • 36

    使用代码:

    self.navigationItem.backBarButtonItem=nil;
    
  • 2

    Swift

    将此添加到 controller

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

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

    self.navigationItem.hidesBackButton = YES;
    
  • 1

    不要忘记您需要在具有导航控制器的对象上调用它 . 例如,如果您使用RootViewController按下导航控制器按下标签栏控制器,则在RootViewController上调用 self.navigationItem.hidesBackButton = YES 将不执行任何操作 . 你实际上必须拨打 self.tabBarController.navigationItem.hidesBackButton = YES

  • 3

    不要忘记我们现在有幻灯片回到手势 . 您可能也想删除它 . Don't forget to enable it back again if necessary.

    if ([self.navigationItem respondsToSelector:@selector(hidesBackButton)]) {
        self.navigationItem.hidesBackButton = YES;
    }
    
    if ([self.navigationController respondsToSelector:@selector(interactivePopGestureRecognizer)]) {
        self.navigationController.interactivePopGestureRecognizer.enabled = NO;
    }
    
  • 781

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

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

    对我来说,上述似乎都没有用,它没有视觉效果 . 我正在使用故事板,其视图“嵌入”在导航控制器中 .

    然后我在代码级别添加我的menuItems,由于某种原因,“backButton”在可视化调试视图层次结构时可见,而我的menuItem图标显示在不可见的“后退按钮”下面 .

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

    我检查了我的图标尺寸,看起来还不错 . 在提到苹果人机界面指南后,我确认我的图标是正确的 . (在我的情况下,1像素更小24px 48px 72px) .

    最奇怪的部分是实际修复......

    When adding the BarButton Item give it a title with at least one character ,在我的例子中是一个空格字符 .

    希望这有助于某人 .

    //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];
    
  • 17

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

    self.navigationItem.hidesBackButton = YES;

    在viewWillAppear或ViewDidLoad中,但是当我在viewController的init中设置它时,它工作得很好 .

相关问题