2013-08-16 6 views
1

У меня возникли проблемы с отображением панели инструментов моего контроллера навигации. Когда я делаюПанель инструментов iOS, не отображающая навигационный контроллер

self.navigationController.toolbarHidden = NO; 

в рамках метода init mainController панель инструментов не отображается. Однако, когда я использую эту строку в комментариях ниже, она работает нормально. Я понимаю, что он не работает, потому что я создаю mainController, прежде чем создавать навигационный контроллер. Есть ли способ исправить это, чтобы я мог вызвать эту строку в методе init mainController?

- (BOOL)application:(UIApplication *)application 
    didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { 

    rootController = [[mainController alloc] init]; 
    UINavigationController *navController = 
     [[UINavigationController alloc] initWithRootViewController:rootController]; 
    //turn on toolbar 

    _window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; 
    _window.rootViewController = navController; 
    [_window makeKeyAndVisible]; 

    return YES; 
} 
+0

Почему у вас есть требование сделать это в init? –

ответ

0

Попробуйте в viewDidLoad методе вашего UIViewController. В вашем методе initself.navigationController вероятно nil

0

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

1) передать его в качестве параметра метода пользовательского инициализации

2) установить его в качестве собственности на делегата приложения, а затем получить доступ к нему в INIT метод через [UIApplication sharedApplication]