2013-01-24 55 views
0

我有这段代码,它在iPhone 4S及以下版本上工作。现在使用iPhone 5s 4英寸屏幕会引发错误。我可以通过评论[appDel.navController.view removeFromSuperview];来避开它,但我不认为这是正确的方式。我不认为这是如此,如果有人可以在这点上发出一点亮光,那就太好了。正确删除视图

由于

代码:

[appDel.tabController setSelectedIndex:0]; 
[appDel.window addSubview:appDel.tabController.view]; 
[appDel.window bringSubviewToFront:appDel.navController.view]; 
[UIView beginAnimations:nil context:nil]; 
[UIView setAnimationDuration:0.6]; 
[UIView setAnimationDelegate:self]; 

[UIView setAnimationTransition:UIViewAnimationTransitionCurlUp forView:appDel.navController.view.superview cache:NO]; 
[appDel.navController.view removeFromSuperview]; 
+0

正在抛出什么样的错误? –

+0

抛出的错误是'EXC_BAD_ACCESS'。 – BigT

回答

0

当经由多个访问指的是一些对象,例如“appDel.navController.view”(我试图想出正式的Objective C名字,也许有人看着我的回答可能会提醒我),很可能你会因为结果不符合你的期望而被烧死它是。

在我自己的代码中,我尝试尽可能多地进行错误检查。

下面的代码可能会帮助您找出问题。从实际意义上讲,你不需要太多的代码行,但这可能会帮助你了解可能出现的问题。

if(appDel) 
{ 
    if(appDel.navController) 
    { 
     if(appDel.navController.view) 
     { 
      [appDel.navController.view removeFromSuperview]; 
     } else { 
      NSLog(@"the view of navController is NULL"); 
     } 
    } else { 
     NSLog(@"navController is NULL"); 
    } 
} else { 
    NSLog(@"appDel is NULL"); 
} 
+0

使用此代码后,我试图重新创建此错误,但它开始工作。不知道这做了什么,但它的工作原理。谢谢 – BigT