0

好吧,那麼我將如何去執行此操作。iOS TabBar和導航控制器

  1. 我有一個標籤欄
  2. 在標籤欄的一個視圖控制器有兩個按鈕
  3. 當我在Button1的Click應該帶我去一個不同的屏幕,但它必須有標籤酒吧在底部。
  4. 當我點擊button2時,它應該帶我到不同的屏幕,但再次必須在底部的標籤欄。

我試圖 1 presentModalViewController - 但只是覆蓋了整個屏幕 2.加入第二屏幕子視圖的第一個屏幕。 - 這顯示了我想看到的第二個視圖,並且底部有標籤欄。但它不起作用。這意味着我有一個scrollview等嵌入在視圖中,但沒有任何工作時,添加子視圖 3.導航控制器 - 我認爲這應該是一次又一次嘗試在viewdidload中添加一個新的導航控制器,但程序崩潰。

@interface SettingsViewController : UIViewController <CLLocationManagerDelegate> 
    @property (nonatomic,retain) UINavigationController * navigationController; 

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    [self.view setBackgroundColor:[[ApplicationResources applicationResources]lightGreyColour]]; 
self.postCodeTextField.hidden = TRUE; 
self.navigationController = [[UINavigationController alloc] initWithRootViewController:self]; 
    [self.view addSubview:self.navigationController.view]; 
//self.facebookSwitch 
} 

那麼解決方案是什麼?謝謝:)

回答

3

presentModalViewController正好意味着覆蓋整個屏幕。

看來你想要在每個選項卡中的導航控制器,所以每個選項卡都有自己的導航堆棧。訣竅是您應該將導航控制器添加到標籤欄,然後將您的視圖控制器添加到導航控制器。

tabbar 
| 
+- navigationController1 
|  | 
|  +- myViewController1 
| 
+- navigationController2 
     | 
     +- myViewController2 

從上面的代碼,看來你已經錯過了UIViewController中已有名爲navigationController屬性點,所以你不應該自己申報。

對於正確設置導航控制器,見Tab Bar Application With Navigation Controller

myViewController1正確作爲navigationController1根視圖控制器插入,那麼可以方便地存在後續viewcontrollers這樣的:

//in myViewController1 
[self.navigationController pushViewController:myViewController3 animated:YES]; 
+0

這工作最初。但在navigationController1我想兩個viewcontrollers(這是因爲viewcontroller1出現時,我按下按鈕,並viewcontroller2出現時,當我按下按鈕B,並且這兩個按鈕都在navigationControllers rootviewcontroller)?任何解決方案 – CodeGeek123

+0

我編輯了我的答案,希望能更好地反映你的問題。 – hlynbech