我正在通过 Xcode 4.2 中的故事板制作带导航控制器的应用。
我希望在加载每个视图时隐藏所有导航栏,只需单击屏幕顶部的按钮,导航栏就会显示几秒钟(我已经使用过NStimer),然后隐藏再次。
到目前为止,我已设法做到这一点,但问题是,当我按下另一个视图然后返回上一个视图时,可以单击该按钮但导航栏不会再次出现。
这是我的代码:
-(void)viewDidLoad
{
[self.navigationController setNavigationBarHidden:YES animated:YES];
}
-(IBAction)top {
[self.navigationController setNavigationBarHidden:NO animated:YES];
hideNavTimer = [NSTimer scheduledTimerWithTimeInterval:3
target:self selector:@selector (HideNav) userInfo:nil repeats:NO];
}
-(void)HideNav {
[self.navigationController setNavigationBarHidden:YES animated:YES];
[hideNavTimer invalidate];
hideNavTimer=nil;
}
我在推送的每个视图中使用此代码。
我做错了什么?
答案 0 :(得分:2)
你应该把它放在viewWillAppear:
中-(void)viewWillAppear:(BOOL)animated:
{
[super viewWillAppear:animated];
[self.navigationController setNavigationBarHidden:YES animated:animated];
}