iPhone - UINavigationItem - 隐藏后退按钮

Rya*_*nJM 3 iphone uinavigationitem

我很难过.我正在使用UINavigationController并在一个视图上我试图隐藏后退按钮.但是当我这样做时,它也隐藏了下一级视图的后退按钮.

- (void)viewWillAppear:(BOOL)animated我有:

[self.navigationItem setHidesBackButton:YES animated:NO];
Run Code Online (Sandbox Code Playgroud)

- (void)viewWillDisappear:(BOOL)animated我有:

[self.navigationItem setHidesBackButton:NO animated:NO];
Run Code Online (Sandbox Code Playgroud)

这只是使后退按钮在它离开之前出现(这似乎是该调用的正确功能).所以我累了

[self.navigationItem setHidesBackButton:NO animated:NO];
Run Code Online (Sandbox Code Playgroud)

- (void)viewWillAppear:(BOOL)animated接下来的观点,而且仍然无法正常工作.

这有点令人困惑,因为self.navigationItem.backBarButtonItem当它是顶视图(ref)下的视图时,该视图的后退按钮将被引用.但是self.navigationItem.hidesBackbutton当它是顶视图(参考)时是否显示后退按钮.那么有谁知道为什么它会隐藏下一个视图的后退按钮?

另一件奇怪的事情是,当我再看另一个视图时它会起作用.为了更直观的表示,让我说我有以下观点:

A > B > C > D
Run Code Online (Sandbox Code Playgroud)

B是我关注的观点.我想要隐藏后退按钮,它会转到A.当我这样做时,它也会隐藏C上的后退按钮.但是,如果我做到D,后退按钮会出现,然后一切都按照"应该"行事.也就是说,我可以回到C,然后回到B. B隐藏了后退按钮,如果我回到C,后退按钮就会显示出来.

有任何想法吗?

Rob*_*und 9

在处理a时,似乎存在关于隐藏和显示后退按钮的某种错误UINavigationController.你的类似问题是没有出现NavigationController的backButton.

我做了一些关于此的测试,虽然我在这里没有解释,但是一些建议可能对你有帮助.

  • 只调用setHidesBackButton:animated:in viewDidAppear:不是 inviewWillAppear:
  • 不要self.navigationItem.hidesBackButton在任何地方使用.

  • 谢谢你的回答.把它放在viewDidAppear帮助.有什么方法可以阻止它闪烁一瞬间? (2认同)