IOS7中的PushViewController崩溃

时间:2013-11-15 16:24:22

标签: ios iphone ios7 pushviewcontroller

我在IOS7中遇到奇怪的问题当我尝试使用IOS6在xcode5中运行我的旧应用程序时,每件事情都运行良好,但是当我尝试推送Nextview时它与IOS7崩溃。这是我的应用程序崩溃的代码。

 FamilyBioViewController *detailView=[[FamilyBioViewController alloc] initWithNibName:@"FamilyBioView" bundle:[NSBundle mainBundle]];
 [self.navigationController pushViewController:detailView animated:YES];
 [detailView release];

发生崩溃时,它没有在控制台中显示任何错误。下面的屏幕截图显示了崩溃结果  enter image description here 有趣的是,当我用 presentViewController 而不是 pushViewController 然后它在IOS 7中正常工作。

FamilyBioViewController *detailView=[[FamilyBioViewController alloc] initWithNibName:@"FamilyBioView" bundle:[NSBundle mainBundle]];
 [self presentViewController:detailView animated:YES completion:nil];
 [detailView release];

所以问题是为什么pushViewController在IOS7中引起问题?任何帮助将不胜感激。谢谢。

编辑: 有关详细信息,请参阅我的应用流程Here,这是我的AppDelegate代码

- (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController
  {
 if(tabBarController.selectedIndex==1 || tabBarController.selectedIndex==3)
 {
    [(UINavigationController *)[tabBarController selectedViewController] popToRootViewControllerAnimated:NO];
}
  }

- (BOOL)tabBarController:(UITabBarController *)tabBarController shouldSelectViewController:(UIViewController *)viewController
 {
   return YES;
 }

2 个答案:

答案 0 :(得分:0)

FamilyBioViewController *detailView = [[[FamilyBioViewController alloc] initWithNibName:@"FamilyBioView" bundle:[NSBundle mainBundle]] autorelease];
[self.navigationController pushViewController:detailView animated:YES];

----编辑---- 我上面的例子不是解决方案!

不要忘记为navigationController声明你的第一个viewController

在iOS6中,这不是一个大问题。在iOS7中它是

看看

[[UINavigationController alloc] initWithRootViewController: (UIViewController *)controller]

只有拥有根才能推送!

答案 1 :(得分:0)

视图控制器阵列中的视图控制器必须是唯一的