两个Xibs一个UIViewController在iPad上崩溃

时间:2014-03-28 12:33:15

标签: ipad xib ios-universal-app

我有一个奇怪的问题。

我有2个XIB和1个ViewController。 One XIB适用于iPhone,另一款适用于iPad。 在XIB for iPad中,只有更大的图像。

- (void)pressShare:(UIBarButtonItem *)sender
{
     NSString *nibName = @"";
     if([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone) {
         nibName = @"MCComunicationViewController";
     }
     if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPad) {
         nibName = @"MCComunicationViewControlleriPad";
     }

     MCComunicationViewController *comVC = [[MCComunicationViewController alloc] initWithNibName:nibName bundle:nil];
     UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:comVC];
     navController.navigationBar.tintColor = [MCColorFactory emerald];
     navController.navigationBar.barTintColor = [UIColor whiteColor];

     [self.navigationController presentViewController:navController animated:YES completion:nil];
}

在配备iOS 7.1的iPhone 5上,它在iPad上与iOS 7.1完美配合,它会崩溃。

iPad运行的调试器说

po navController
<UINavigationController: 0x16578470>

po navController.viewControllers
<__NSArrayI 0x16590390>(
       <MCComunicationViewController: 0x165780d0>
)

po comVC
<MCComunicationViewController: 0x165780d0>

它在main.m中与SIGABRT崩溃,当我逐步调试时它被[self.navigationController presentViewController:navController animated:YES completion:nil];崩溃:/任何想法?

2 个答案:

答案 0 :(得分:0)

使用两个xib,用户Container类。 如果您使用容器,则可以轻松管理数据。

答案 1 :(得分:0)

尝试....

 [self.navigationController pushViewController:navController animated:YES];