2010-11-30 74 views
2

我已经发布了这个问题,但这次我发布代码。所以我有一个uiviewController,并在viewController的viewDidLoad中隐藏了navigationController的backButton。在那之后,我推一个新的UIViewController,我和后退按钮设置为可见在viewDidLoad中,但后退按钮仍然隐藏...没有出现NavigationController backButton

第一的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; 

} 

和第3页没有后退按钮,但该按钮创建的空间,因为瓷砖“第3页”在右边,而不是在中心......这一切的发生是由于IOS 4.2

thx

+0

尝试在viewWillAppear中和2 – Vjy 2010-11-30 16:29:31

+0

我试过页的viewwilldisapper,但它不工作.. – alex 2010-11-30 16:34:30

+0

类似的帖子,我怀疑这里是同样的问题。 http://stackoverflow.com/questions/708033/why-is-self-navigationitem-hidesbackbutton-not-working/712918#712918 – Prcela 2010-11-30 16:42:50

回答

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 = ...在两个控制器中。

0

那么,我有同样的问题运行iOS 4.2。后退按钮将拒绝出现。在自动绘制到风景后,它就会出现。我的解决办法是做到以下几点 - 这解决了问题...或者我们应该说,它的一个解决办法;)

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    self.navigationItem.hidesBackButton = YES; 
} 

- (void)viewDidAppear:(BOOL)animated { 
    [super viewDidAppear:animated]; 
    self.navigationItem.hidesBackButton = NO; 
} 
2

无论是上述的解决方法似乎为我工作。但是当第三个视图显示时,我可以看到按钮闪烁片刻。所以我怀疑这个问题(BUG)与动画

当变化的动画对pushViewController没有问题做就走了

- (IBAction)btnNext:(id)sender { 

    [[self navigationController] pushViewController:thirdViewController animated:NO]; 
} 
2

我的绝招是设置setNavigationBarHidden为YES和NO立即。

[self.navigationItem setHidesBackButton:NO animated:YES]; 
[self.navigationController setNavigationBarHidden:YES]; 
[self.navigationController setNavigationBarHidden:NO]; 

因此,作为这个后退按钮没有设置动画,但它真正的工作和我的经理都不会注意到它,P