2013-01-24 95 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