0

我正在構建一個基於Xcode中的Utility模板的應用程序,我已經添加了一些更多的視圖。我的應用程序的結構將是如下:來自UITabBarController內的popView UINavigationController

  • 的MainView(應用菜單)

    • 倒裝側視圖(一個計算器)

    • 的UINavigationController

    • 設置視圖

      • viewDidLoad中:的UITabBarController

         - Tab1 view (options) 
             - Tab2 view (information text) 
        

我可以從我的MainView到我的翻轉側視圖,這也是導航控制器的根視圖正確地導航。從我的Flip側視圖中,我推入導航控制器(設置視圖)的第二個視圖,該視圖配置爲一旦加載(使用viewDidLoad),就會顯示帶有兩個選項卡的UITabBarController。

如果我刪除了UITabBarController,我可以使用「設置」視圖中的「popViewController」將沒有問題的問題返回到我的翻轉視圖。如果我在我的Settings視圖中加載viewDiDLoad中的UITabBarController,這個問題就出現了......這些標籤完美地工作,但我無法再返回到我的Flip-side視圖(導航控制器的根視圖)。

我可以返回,如果我使用導航欄的導航控制器,但我想配置我自己的按鈕,並隱藏導航欄。

到目前爲止,我已經嘗試以下方法:

  • [self.navigationController popViewControllerAnimated:YES];

  • [self.navigationController popToRootViewControllerAnimated:YES];

  • [self.navigationController popToViewController:FlipSideViewController animated:YES];

但他們似乎沒有工作。前兩個不做任何事情(屏幕保持原樣),第三個不承認「FlipsideViewController」(也許是因爲它是MainViewController的委託?)。

如果我激活導航欄,是否有方法檢查導航欄的「返回」按鈕?

我應該使用代表嗎?

我可以在兩個Tab視圖中的任何一個設置視圖中調用popViewController方法嗎?

這是我的倒裝側視圖:

- (IBAction)showSettingsView { 
    SettingsViewController *controller = [[SettingsViewController alloc] initWithNibName:@"SettingsView" bundle:nil]; 
    controller.title = @"Settings"; 
    [self.navigationController pushViewController:controller animated:YES]; 
    [controller release]; 
} 

這是我的設置查看:

- (IBAction)backFromTab1View { 
    [self.navigationController popToViewController:FlipSideViewController animated:YES]; 
} 

- (void)viewDidLoad { 
    [super viewDidLoad]; 

    tabBarController = [[UITabBarController alloc] init]; 

    Tab1ViewController* vc1 = [[Tab1ViewController alloc] init]; 
    Tab2ViewController* vc2 = [[Tab2ViewController alloc] init]; 

    NSArray* controllers = [NSArray arrayWithObjects:vc1, vc2, nil]; 
    tabBarController.viewControllers = controllers; 

    [self.view addSubview:tabBarController.view]; 
} 

而且方法中的標籤視圖之一返回

非常感謝,如果問題太簡單,我們會很抱歉!

回答

0

我其實解決了設置視圖中創建我自己的UINavigationBar的使用問題:

[self.view insertSubview:tabBarController.view belowSubview:myNavigationBar]; 

即插入導航欄下方的視圖的休息,我仍然可以使用它來配置一個按鈕,彈出該視圖並返回到前一個屏幕。

我花了一段時間才明白「addSubview」和「inserSubview + belowSubview」之間的區別。對於那個很抱歉!

相關問題