2012-12-02 83 views
1

我在嘗試編寫一個選項卡式應用程序,其中每個選項卡都是導航控制器。此選項卡欄出現在導航控制器的每個視圖中,因爲它是在每個視圖上推斷的。用UIToolbar以編程方式替換UITabBar

我想用一個工具欄替換一個詳細視圖上的這個標籤欄,上面有幾個按鈕。

我試圖在詳細視圖的viewDidLoad下面的代碼:方法

self.navigationController.toolbarHidden = NO; 
self.navigationController.toolbar.barStyle = UIBarStyleBlackTranslucent; 

UIBarButtonItem *accept = [[UIBarButtonItem alloc] initWithTitle:@"Accept" 
                   style:UIBarButtonItemStyleBordered 
                   target:self 
                   action:nil]; 

UIBarButtonItem *decline = [[UIBarButtonItem alloc] initWithTitle:@"Decline" 
                   style:UIBarButtonItemStyleBordered 
                   target:self 
                   action:nil]; 
NSArray *items = [NSArray arrayWithObjects:accept, decline, nil]; 
[self.navigationController.toolbar setItems:items animated:YES]; 

// code suggested 
[self.view addSubview:self.navigationController.toolbar]; 

它仍然沒有露面。雖然隱藏標籤欄現在添加下面的行中顯示詳細視圖的視圖: -

theDetailTableViewController.hidesBottomBarWhenPushed = YES; 

我錯過了什麼嗎?

回答

0

我通常在viewWillAppear或viewDidAppear方法中將toolbarHidden = YES或NO,如適用。我不確定這是爲什麼它不適合你,但是當你回到展示視圖時,你需要解決這個問題。

如果你沒有解決它,當你回來時,工具欄仍然可見。

+0

乾杯朋友。這工作。一旦查看出現,我使用viewDidAppear來顯示工具欄。然後我用viewWillDisappear來隱藏它,因爲它消失了。 –

0

無論你是從推你detailViewController,這樣做是爲了隱藏標籤欄的詳細視圖:

DetailViewController *detailViewController = [[DetailViewController alloc] initWithNibName:@"DetailViewController" bundle:nil]; 
detailViewController.hidesBottomBarWhenPushed = YES; 
[self.navigationController detailViewController animated:YES]; 

,並在您的詳細視圖,只需添加工具欄作爲一個子視圖到的DetailView。

+0

感謝您的幫助@calvinBhai我已經使用您的建議更新了我的問題。標籤欄已消失,但工具欄仍未顯示。 –

相關問題