Вопрос

Я создаю приложение на основе шаблона утилиты от Xcode, к которому я добавил еще несколько просмотров. Моя структура приложений будет следующим:

  • Mainview (меню приложения)

    • Вид сбоку (калькулятор)

    • UinavightController

    • Настройки Просмотр

      • ViewDidload: UitabbarController

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

Я могу правильно перемещаться от моего Mainview на мой вид сбоку, который также является корневым видом на навигационно-контроллер. С моего вида сбоку сбоку я нажимаю второй вид моего контроллера навигации (просмотр настроек), который настроен для отображения для отображения UITABBABONTROLLER, с двумя вкладками, как только он загружается (с ViewDidload).

Если я удаляю UITabbarController, я могу вернуться без проблем на мой вид сбоку с использованием «PopviewController» с моих настроек. Проблема наступает, если я загружу UITABBABONTROLLER в ViewDidload в моих настройках ... вкладки отлично работают, но я не могу вернуться на мой вид сбоку (корневой вид навигационного контроллера).

Я могу вернуться, если я использую панель навигации навигационного контроллера, но я хочу настроить мои собственные кнопки и иметь скрытую панель навигации.

Пока я попробовал следующие методы:

  • Self.navigatingController popviewcontrollerranimated: да];

  • Self.navigingController poptorootviewcontrolleranimated: да];

  • Self.navigationController PoptoviewController: FlipsideViewController Animated: Да];

Но они не работают. Первые два просто ничего не делают (экран остается как оно был), и третий не распознает «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];
}

И метод возврата в одну из просмотров вкладок:

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

Большое спасибо и извините, если вопрос слишком простой!

Это было полезно?

Решение

На самом деле я решил проблему, создавая свой собственный UinavIgintBar в представлении настроек и использование:

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

Это вставляет остаток вида под панелью навигации, и я все еще могу использовать его, чтобы настроить кнопку, которая появляется вид и возврат к предыдущему экрану.

Мне потребовалось некоторое время, чтобы понять различия между «AddsubView» и «InsersubvView + Belowsubview». Извини за это!

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top