Создание контроллера навигации, который не отображается при запуске - PullRequest
0 голосов
/ 16 июля 2011

Я хочу сделать эту простую вещь: создать контроллер uinavigation, но он не отображается при запуске.Допустим, я хочу иметь экран приветствия с кнопкой «Перейти», которая ведет к контроллеру навигации.Во всех примерах, которые я видел, похоже, что навигационный контроллер появляется сразу.Как мне это сделать?

Спасибо!

Ответы [ 3 ]

2 голосов
/ 16 июля 2011

Если под «показывать» вы имеете в виду использование контроллера навигации без видимого следа, это просто.Просто сделайте это в корневом контроллере представления:

// Root
- (void)viewWillAppear:(BOOL)animated
{
    [self.navigationController setNavigationBarHidden:YES animated:animated];
}

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

// Child
- (void)viewWillAppear:(BOOL)animated
{
    [self.navigationController setNavigationBarHidden:NO animated:animated];
}

Это довольно распространенный метод для приложений с основными меню, когда вы не хотите отображать панель навигации в представлении главного меню.

1 голос
/ 16 июля 2011

Механизм отображения представления контроллера навигации выполняется в методе -(BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions; в делегате приложения.Там NC добавляется как rootViewController окна.
Если вы хотите отобразить еще один, просто установите свой собственный контроллер представления прямо вместо NC, а затем переключите два контроллера представления (замените первый пользовательский контроллер представления наNC) в методе действия, вызываемом при нажатии кнопки.
Предполагается, что myCustomController определяет свойство UIButton с именем touchButton:

// in the app delegate
-(BOOL)application:(UIApplication *)application
    didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    //self.window.rootViewController = self.navigationController;
    [self.myCustomController.touchButton addTarget:self
                                            action:@selector(switchVC)
                                  forControlEvents:UIControlEventTouchUpInside];
    self.window.rootViewController = self.myCustomController;
    [self.window makeKeyAndVisible];
    return YES;
}

Теперь напишите в приложении делегировать метод действия:

-(void)switchVC {
    self.window.rootViewController = self.navigationController;
}
1 голос
/ 16 июля 2011

в viewcontroller, который показывает скрыть панель навигации, а в другой - показать панель навигации

[self.navigationController setNavigationBarHidden:YES];

надеюсь, это поможет

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...