9

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

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

4 回答 4

45

用它来隐藏后退按钮

[self.navigationItem setHidesBackButton:YES]

用它来显示后退按钮

[self.navigationItem setHidesBackButton:NO]
于 2009-03-27T16:39:57.333 回答
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];
}
于 2012-05-23T15:11:45.073 回答
1

斯威夫特5:

self.navigationItem.setHidesBackButton(true, animated: false)
于 2019-12-25T14:03:45.503 回答
0

从情节提要到您的视图控制器,使用强(默认不弱)的条形按钮创建一个出口。当您将左/右栏按钮设置为 nil 时,目的是不丢失参考。

于 2013-02-14T08:24:06.970 回答