我已发布此问题,但这次我发布了代码。所以我有一个uiviewController,在这个viewController的viewDidLoad中我隐藏了navigationController的backButton。之后,我推了一个新的uiviewcontroller,并将backbutton设置为viewDidLoad中的可见按钮,但后面的按钮仍然隐藏...
第一个uiviewcontroller的实现
- (void)viewDidLoad {
[super viewDidLoad];
self.navigationItem.title = @"page2page2page2page2page2";
self.navigationItem.hidesBackButton = TRUE;
}
-(IBAction)click
{
page3 *controller = [[page3 alloc] init];
[self.navigationController pushViewController:controller animated:YES];
[page3 release];
}
第3页的实施
- (void)viewDidLoad {
[super viewDidLoad];
self.navigationItem.title = @"page3";
self.navigationItem.hidesBackButton = FALSE;
}
并且page3没有后退按钮,但为按钮创建了空间,因为磁贴“第3页”位于右侧而不是中间...所有这些都发生在ios 4.2上
THX
答案 0 :(得分:2)
以上解决方法似乎都不适用于我。但是当显示第三个视图时,我可以看到按钮暂时闪烁。所以我怀疑问题(bug)与动画
有关当pushViewController上的动画更改为NO时,问题就消失了
- (IBAction)btnNext:(id)sender {
[[self navigationController] pushViewController:thirdViewController animated:NO];
}
答案 1 :(得分:2)
我的诀窍是将setNavigationBarHidden设置为YES并立即设置为NO。
[self.navigationItem setHidesBackButton:NO animated:YES];
[self.navigationController setNavigationBarHidden:YES];
[self.navigationController setNavigationBarHidden:NO];
因此,backButton不会被动画,但它确实有效,我的经理没有注意到它; P
答案 2 :(得分:1)
我得到同样的行为,我必须说我觉得很奇怪。我不能说为什么它不起作用,但作为一种解决方法,你可以这样做:
在第2页:
- (void)viewDidAppear:(BOOL)animated {
[super viewDidAppear:animated];
[self.navigationItem setHidesBackButton:YES animated:YES];
}
在第3页:
- (void)viewDidAppear:(BOOL)animated {
[super viewDidAppear:animated];
[self.navigationItem setHidesBackButton:NO animated:YES];
}
并删除两个控制器中对self.navigationItem.hidesBackButton = ...
的调用。
答案 3 :(得分:0)
嗯,我在运行iOS 4.2时遇到了同样的问题。后退按钮会拒绝出现。在自动驾驶到风景时,它会出现。我的解决方案是执行以下操作 - 这解决了问题...或者我们应该说它是一种解决方法;)
- (void)viewDidLoad
{
[super viewDidLoad];
self.navigationItem.hidesBackButton = YES;
}
- (void)viewDidAppear:(BOOL)animated {
[super viewDidAppear:animated];
self.navigationItem.hidesBackButton = NO;
}