隐藏 - 取消隐藏UINavigationBar的backBarButton?

时间:2011-05-30 05:35:52

标签: ios uinavigationcontroller back-button

我想做这样的事情。所有控制器都被推送到导航控制器上。  ViewController 1 - > ViewController 2(不显示通过按下自动出现的后退按钮) - > ViewController 3(导航栏的Show Back按钮) - > ViewController 4(再次隐藏Bar按钮)。

我已经尝试将View的标题设置为空,但后面的按钮不会出现在应用中的任何位置。此外,我已经尝试将按钮设置为nil,然后在导航堆栈上推送ViewController2。但没有任何预期的效果。有人知道怎么做。注意 - 我想要在堆栈上按下viewController而不是左栏按钮项时出现的默认后退栏按钮。如果没有选项,那么我更喜欢左栏按钮项目方法。

2 个答案:

答案 0 :(得分:7)

我之前做过类似的事情。在控制器中,如果您正在执行pushViewController:

,那么您将不希望使用后退按钮的下一个视图控制器
myNextViewController.navigationItem.hidesBackButton = YES;
[self.navigationController pushViewController:myNextViewController animated:YES];

在你的情况下,这将是堆栈中的第一个和第三个viewControllers。

答案 1 :(得分:1)

hidesBackButton方法显示后推条按钮被推出的动画。不过很小,就像你说的那样似乎不对。脏选项转发将在父视图控制器中执行此操作。

- (void)viewWillAppear:(BOOL)animated
{
    [super viewWillAppear:animated];
    self.title = @"Title";
}

- (void)viewWillDisappear:(BOOL)animated
{
    [super viewWillDisappear:animated];
    self.title = @"";
}

原始答案

您需要将其添加到要隐藏后退按钮的视图控制器中。非常自我解释。

self.navigationItem.hidesBackButton = YES;