Я создаю приложение на основе шаблона Utility из Xcode, к которому я добавил несколько видов. Моя структура приложения будет выглядеть следующим образом:popView от UITabBarController внутри UINavigationController
MainView (меню приложения)
вид Флип стороне (калькулятор)
UINavigationController
Настройки просмотра
viewDiDLoad: UITabBarController
- Tab1 view (options) - Tab2 view (information text)
я могу правильно перемещаться от моего MainView на мой взгляд Флипа стороны, которая является также видом корня навигации контроллера. С моего флип-бокового представления я нажимаю второй вид моего контроллера навигации (представление настроек), который настроен для отображения UITabBarController с двумя вкладками, как только он загружается (с помощью viewDidLoad).
Если я удалю UITabBarController, я могу без проблем вернуться к своему взгляду на Flip-стороне, используя «popViewController» из моего представления «Параметры». Проблема возникает, если я загружаю UITabBarController в viewDiDLoad в представлении «Настройки» ... вкладки работают отлично, но я не могу больше вернуться к своему флип-боковому представлению (корневому представлению контроллера навигации).
Я могу вернуться, если я использую панель навигации контроллера навигации, но я хочу настроить собственные кнопки и скрыть панель навигации.
До сих пор я попытался следующие методы:
[self.navigationController popViewControllerAnimated: YES];
[self.navigationController popToRootViewControllerAnimated: YES];
[self.navigationController popToViewController: FlipSideViewController animated: YES];
Но они, похоже, не работают. Первые два просто ничего не делают (экран остается таким, каким он был), а третий не распознает «FlipsideViewController» (может быть, потому, что он является делегатом MainViewController?).
Есть ли способ проверить, что именно делает кнопку «назад» на панели навигации, если я активирую ее?
Должен ли я использовать делегатов?
Можно ли вызвать метод popViewController в представлении «Параметры» из любого из двух представлений «Табуляция»?
Это мой взгляд Флип сторона:
- (IBAction)showSettingsView {
SettingsViewController *controller = [[SettingsViewController alloc] initWithNibName:@"SettingsView" bundle:nil];
controller.title = @"Settings";
[self.navigationController pushViewController:controller animated:YES];
[controller release];
}
Это мои настройки просмотра:
- (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];
}
И метод, чтобы вернуться в одном из представлений Tab:
- (IBAction)backFromTab1View {
[self.navigationController popToViewController:FlipSideViewController animated:YES];
}
Большое спасибо и извините, если вопрос слишком прост!