在委托中调用Viewcontroller时,应用程序在iPhone 5上崩溃

时间:2013-11-05 16:29:00

标签: ios objective-c ipad iphone-5

我有一个适用于其他模拟器的项目,包括The New iPad。但是,使用iPhone5时,在委托中调用Viewcontroller时会崩溃 我不知道为什么会发生这种错误。如果您在下面的代码中发现任何可能的原因,请通知我们:

self.rootviewController = [[RootViewController alloc] initWithNibName:@"RootViewController" bundle:nil]; 
self.rootNavController = [[UINavigationController alloc]
self.rootNavController.navigationBar.hidden=YES;
[window addSubview:rootNavController.view];'

请参阅下图: error http://i41.tinypic.com/i6juy1.png

非常感谢

1 个答案:

答案 0 :(得分:1)

我认为您在创建UINavigationController时遇到了问题,请尝试使用以下代码替换AppDelegate.m中的代码:

编辑添加代码以UIViewController

显示和删除启动画面
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];

    // Create View Controller
    RootViewController *rootViewController = [[RootViewController alloc] initWithNibName:@"RootViewController" bundle:nil];

    // Create Navigation Controller
    UINavigationController *navigationController = [[UINavigationController alloc] initWithRootViewController:rootViewController];

    // Create Navigation Controller
    self.window.rootViewController = navigationController;
    [self.window makeKeyAndVisible];

    // SplashScreen
    [self displaySplashscreen];

    return YES;
}

#pragma mark - SplashScreen Methods
- (void)displaySplashscreen
{
    // Create View
    self.splashscreenViewController = [[SplashscreenViewController alloc] init];

    // Display Splashscreen
    [_window addSubview:_splashscreenViewController.view];

    // Dismiss Splashscreen
    [self performSelector:@selector(dismissSplashscreen) withObject:nil afterDelay:3.0f]; // Modify the time
}

- (void)dismissSplashscreen
{
    // Splashscreen Animation
    [UIView animateWithDuration:0.5f
                     animations:^{
                         _splashscreenViewController.view.alpha = 0.0f;
                     } completion:^(BOOL finished) {
                         [_splashscreenViewController.view removeFromSuperview];
                     }];
}