0

私はこのコードブロックを持っていて、iPhone4S以下で動作しました。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];
4

1 に答える 1

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" );
}
于 2013-01-26T19:58:44.493 に答える