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];
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 回答