2013-08-16 79 views
1

我无法使导航控制器的工具栏显示。当我做iOS工具栏未显示导航控制器

self.navigationController.toolbarHidden = NO; 

在mainController的init方法中工具栏不显示。但是,当我在下面的注释部分使用该行时,它工作正常。我意识到它不起作用,因为我在创建导航控制器之前创建了mainController。有没有办法解决这个问题,以便我可以在mainController的init方法中调用该行?

- (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

尝试在你的UIViewControllerviewDidLoad方法。在您的init方法中self.navigationController可能是nil

0

self.navigationController将在init期间为零,因为控制器尚未被推入导航控制器堆栈。为了在初始化你将不得不

1)它作为一个参数传递给自定义init方法

2)来访问它设置为在应用程序委托一个属性,然后访问它在init方法通过[UIApplication sharedApplication]