我如何能表现出的TabBar推一个UIViewController到导航堆栈时
问题描述:
所以它很容易隐藏的TabBar当你推一个视图控制器到导航控制器堆栈:我如何能表现出的TabBar推一个UIViewController到导航堆栈时
uiViewController.hidesBottomBarWhenPushed = YES;
作品只是桃色。
认沽比方说,我要推更深入堆栈中并再次显示它?
一些后视图控制器设置
laterUIViewController.hidesBottomBarWhenPushed = NO;
不让它重新出现。它仍然隐藏。
答
尝试隐藏它,所以你告诉它隐藏,它隐藏,但然后你告诉它不要隐藏它(我不知道它是否显示它,如果你设置为否),但它看起来像它不是,无论是或者你告诉它不隐藏,当你想要的视图控制器已经被推动,它不会隐藏栏,直到下一个视图控制器已被推动,所以你应该尝试设置为未隐藏你自己。
答
你可以尝试继承UIViewController
并覆盖
- (void)viewWillAppear:(BOOL)animated { self.hidesBottomBarWhenPushed = YES; }
- (void)viewWillDisappear:(BOOL)animated { self.hidesBottomBarWhenPushed = NO; }
,然后使用该子类作为要显示底栏视图控制器的超类。
答
这为我工作:
- (void)viewWillAppear:(BOOL)animated { self.tabBarController.tabBar.hidden = YES; }
- (void)viewWillDisappear:(BOOL)animated { self.tabBarController.tabBar.hidden = NO; }
答
尝试以下解决方法:如果你不动画视图控制器之间的切换它应该工作正常。
的想法是让你的TabBar控制器的视图尺寸更大,所以的TabBar(这是在视图的底部)熄灭屏幕和隐藏视图时恢复视图大小。
在应隐藏标签栏定义了以下方法您的视图控制器:
-(void)viewWillAppear:(BOOL)animated{
[super viewWillAppear:animated];
CGRect r = self.tabBarController.view.frame;
r.size.height +=self.tabBarController.tabbar.frame.size.height;
self.tabBarController.view.frame = r;
}
-(void)viewWillDisappear:(BOOL)animated{
[super viewWillDisappear:animated];
self.tabBarController.view.frame = CGRectMake(0, 0, 320, 480); //for iPhone portrait
}
你需要确保你的应用程序委托的TabBar CONTROLER和窗口网点的定义,并用XIB1
正确链接@property (nonatomic, retain) IBOutlet UIWindow *window;
@property (nonatomic, retain) IBOutlet UITabBarController *tabBarController;
我有这样的排序工作。当视图重新出现时,动画是错误的。 返回时,视图将不会受到尊重,所以我不得不跳过一堆箍来恢复工作。 – 2009-08-27 14:15:06