我正在構建一個基於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];
}
而且方法中的標籤視圖之一返回
非常感謝,如果問題太簡單,我們會很抱歉!