我有一个UItabbarController,在第一个标签内有一个UINavigationController。在界面构建器中,我将标签栏和导航栏设置为隐藏。
当第一个屏幕加载时(第一个选项卡的Uinaviagtioncontroller中的UIVewcontroller)我设置了一个NStimer 2秒钟。然后导航到第二个视图。现在,当发生这种情况时,我希望导航栏和标签栏出现,并且应该设置动画。
这就是我现在正在做的事情。
第一个UIViewController:
- (void)viewDidLoad {
[super viewDidLoad];
splashTime = [NSTimer scheduledTimerWithTimeInterval:2.0 target:self selector:@selector (action) userInfo:nil repeats:NO];
}
-(void)action{
SecondViewController *m = [[SecondViewController alloc] initWithNibName:@"SecondViewController" bundle:nil];
[self.navigationController pushViewController:m animated:YES];
}
第二个UIViewController:
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil {
if ((self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil])) {
self.hidesBottomBarWhenPushed = NO;
[self.navigationController setNavigationBarHidden:NO animated:YES];
}
return self;
}
但实际上并没有发生任何事情。 Tabbar或NavigationBar都不会出现。
答案 0 :(得分:1)
尝试将第二视图控制器的代码放在viewWillAppear方法而不是initWithNibName方法中,看看是否有所需的结果:
- (void) viewWillAppear:(BOOL)animated {
self.hidesBottomBarWhenPushed = NO;
[self.navigationController setNavigationBarHidden:NO animated:YES];
}
每次视图即将显示时都应该调用它。