有没有比这更好的隐藏backBarButtonItem的方法?

时间:2009-03-27 16:27:40

标签: iphone uinavigationbar

我有办法隐藏导航控制器使用的后退按钮。它由前一个控制器设置,而不是管理当前视图的控制器,这使得它变得棘手。我需要在编辑模式下执行此操作,以便我可以阻止用户导航离开屏幕。

if(self.editing) {
    // Get rid of the back button   
    UIView *emptyView = [[UIView alloc] init];;
    UIBarButtonItem *emptyButton = [[[UIBarButtonItem alloc] initWithCustomView:emptyView] autorelease];
    [self.navigationItem setLeftBarButtonItem:emptyButton animated:YES];
} else {
    // Restore the back button
    [self.navigationItem setLeftBarButtonItem:nil animated:YES];        
}

有更好的方法吗?

4 个答案:

答案 0 :(得分:45)

使用此按钮隐藏按钮

[self.navigationItem setHidesBackButton:YES]

使用此按钮显示后退按钮

[self.navigationItem setHidesBackButton:NO]

答案 1 :(得分:1)

这是我在视图控制器中使用的方法,用于在启用和禁用编辑时显示和隐藏后退按钮:

- (void)setEditing:(BOOL)editing animated:(BOOL)animated
{
    if (editing) {
        // Disable the back button
        [self.navigationItem setHidesBackButton:YES animated:YES];
    }
    else {
        // Enable the back button
        [self.navigationItem setHidesBackButton:NO animated:YES];
    }

    [super setEditing:editing animated:animated];
}

答案 2 :(得分:0)

从故事板到视图控制器的条形按钮具有强大(默认为弱)的插座。 将左/右条形按钮设置为nil时,目的不是松开参考。

答案 3 :(得分:0)

Swift5:

self.navigationItem.setHidesBackButton(true, animated: false)