2009-08-27 3 views
7

Vì vậy, nó là rất dễ dàng để ẩn thanh tabbar khi bạn đẩy một bộ điều khiển xem vào bộ điều khiển chuyển hướng stack:Làm thế nào tôi có thể hiển thị một thanh tabbar khi đẩy một UIViewController vào Navigation chồng

uiViewController.hidesBottomBarWhenPushed = YES; 

công trình chỉ peachy.

Đặt giả sử tôi muốn đẩy sâu hơn vào ngăn xếp và hiển thị nó một lần nữa?

Thiết

laterUIViewController.hidesBottomBarWhenPushed = NO; 

trên một số bộ điều khiển xem sau không làm cho nó xuất hiện trở lại. Nó vẫn còn ẩn.

Trả lời

-1

Hãy thử không giấu nó, vì vậy bạn bảo nó ẩn, nó ẩn, nhưng sau đó bạn bảo nó không ẩn nó (tôi không biết nếu nó hiển thị lại nếu bạn đặt nó thành không) nhưng có vẻ như nó không , hoặc là hoặc u đang yêu cầu nó không ẩn khi bộ điều khiển xem bạn muốn thanh trong đã được đẩy và nó không ẩn thanh cho đến khi bộ điều khiển xem tiếp theo được đẩy, vì vậy bạn nên cố gắng đặt nó là ẩn chính bạn.

3

Bạn có thể thử subclassing UIViewController và trọng

- (void)viewWillAppear:(BOOL)animated { self.hidesBottomBarWhenPushed = YES; } 
- (void)viewWillDisappear:(BOOL)animated { self.hidesBottomBarWhenPushed = NO; } 

Và sau đó sử dụng mà lớp con là lớp cha của bộ điều khiển xem mà bạn muốn hiển thị thanh dưới cùng.

+0

tôi có một cái gì đó như thế này để sắp xếp công việc. Các hình ảnh động là sai mặc dù khi xem lại xuất hiện. Quan điểm sẽ xuất hiện đã không được tôn trọng khi đi lại vì vậy tôi đã phải nhảy qua một loạt các hoops để làm cho trở lại làm việc. –

2

này đã làm việc cho tôi:

- (void)viewWillAppear:(BOOL)animated { self.tabBarController.tabBar.hidden = YES; } 
- (void)viewWillDisappear:(BOOL)animated { self.tabBarController.tabBar.hidden = NO; } 
1

Hãy thử cách này: nếu bạn không động chuyển đổi giữa các bộ điều khiển xem nó nên làm việc OK.

Ý tưởng là làm cho kích thước chế độ xem của bộ điều khiển thanh tab của bạn lớn hơn để thanh tabbar (ở cuối màn hình) ra khỏi màn hình và khôi phục kích thước chế độ xem khi ẩn chế độ xem.

Trong điều khiển xem bạn cần giấu một thanh tab xác định các phương pháp sau:

-(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 
} 

Bạn cần phải chắc chắn rằng trong ứng dụng được ủy quyền thanh tabbar khiển và cửa sổ các cửa hàng được định nghĩa và liên kết đúng với XIB

@property (nonatomic, retain) IBOutlet UIWindow *window; 
@property (nonatomic, retain) IBOutlet UITabBarController *tabBarController;