"ios Application tried to push a nil view controller on target"错误处理

{app.params.name}} {app.params.name}} {app.params.name}}

关于“ios Application tried to push a nil view controller on target”这个错误,原因其实很简单,问题都是找到了才觉得简单,处理的时候不知道有多烦恼。呵呵,本来就应该是这样吧。

没有错误的作法:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
    
    rootViewController = [[WalkerUITestViewController alloc] initWithNibName:@"WalkerUITestViewController" bundle:nil];
    navigationController = [[UINavigationController alloc] initWithRootViewController:rootViewController];
    
    
    self.window.rootViewController = navigationController;
    
    
    
    self.window.backgroundColor = [UIColor whiteColor];
    [self.window makeKeyAndVisible];
    return YES;
}

有错误的作法

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
    
    navigationController = [[UINavigationController alloc] 
    initWithRootViewController:rootViewController];
    
    
    self.window.rootViewController = navigationController;
    
    
    
    self.window.backgroundColor = [UIColor whiteColor];
    [self.window makeKeyAndVisible];
    return YES;
}

当然在这两个例子里面,属性的声明是一样的

@synthesize navigationController;
@synthesize rootViewController;

其实就是在使用之前,自己有木有初始化的问题。ok。


版权声明

davidzhang 创作并维护的 Gowhich 博客采用 创作共用保留署名-非商业-禁止演绎4.0国际许可证。

本文首发于 Gowhich 博客( https://www.gowhich.com ),版权所有,侵权必究。

本文永久链接: https://www.gowhich.com/blog/267

comments powered by Disqus