2013-01-07 72 views
0

我想要導航堆棧中的導航應用程序有三個UIViewController。我有一個底欄(UITabBar)。Tabbar不會顯示在導航堆棧中的某個UIViewController中

當第一個UIViewController被推入堆棧時,我想隱藏tabbar,並且當第二個UIVIewController被推入時,我想顯示tabbar。

這是我寫的代碼。

對於第一UIVIewController

NotificationDetailsVC *obj = [[NotificationDetailsVC alloc] init]; 
obj.hidesBottomBarWhenPushed = YES; 
[self.navigationController pushViewController:obj animated:YES]; 
[obj release]; 

對於二UIViewController我做:

NotificationBO *obj=[self.notificationsArray objectAtIndex:indexPath.row]; 
object.hidesBottomBarWhenPushed = NO; 
[self.navigationController pushViewController:object animated:YES]; 
[object release]; 

現在的問題是,我可以得到UITabBar隱藏第一UIViewController的,但對於第二個它也是隱。

我該如何解決這個問題?

回答

1

而不是使用hidesBottomBarWhenPushed方法。試試你的代碼隱藏的TabBarViewController,像

[self.tabBarController.tabBar setHidden:YES]; 

顯示的TabBar

[self.tabBarController.tabBar setHidden:NO]; 

以上一會的工夫,但問題是它會留下空空間viewController底部。要解決這個問題,請將frame設置爲您的tabbarController

對於隱藏,設置

[self.tabBarController.tabBar setFrame:CGRectMake(0, 480, 320, 50)] 

對於顯示,設置

[self.tabBarController.tabBar setFrame:CGRectMake(0, 430, 320, 50)] 
+1

你知道iPhone 5?更好地使用'self.view.frame.size.height'而不是480. –

+0

謝謝,它有幫助 –

相關問題