viewDidAppear在iOS5中调用了两次

Iba*_*bai 6 uinavigationcontroller viewdidappear ios ios5

我正在开发一个带有UINavigatorController的应用程序.我在第二个推送的viewController中使用viewDidAppear方法来查找外部服务器中的信息.

好.虽然iOS5在开始时运行良好,但我意识到在iOS4.3中没有调用viewDidAppear所以我把这段代码放在根目录中:

- (void)navigationController:(UINavigationController *)navigationController 
       didShowViewController:(UIViewController *)viewController animated:(BOOL)animated 
{
    [viewController viewDidAppear:animated];
}
Run Code Online (Sandbox Code Playgroud)

此后,该应用程序开始在iOS4.3中正常运行.然而,在iOS5中没有,因为它调用了两次viewDidAppear(最初被调用的那个和来自的那个navigationController:didShowViewController:animated:)

如果只调用一次viewDidAppear,我该怎么办?

非常感谢你

Fer*_*nte 1

使用 [[UIDevice currentDevice] systemVersion] 检查用户正在运行哪个版本的 iOS;如果是 4.3,则调用 viewDidAppear 方法。

  • 是不是有点脏啊?我知道我可以用这种方式解决它,但我认为应该有更正确的东西。 (2认同)