gpt4 book ai didi

ios - viewDidAppear 在 iOS5 中调用了两次

转载 作者:可可西里 更新时间:2023-11-01 03:52:57 27 4
gpt4 key购买 nike

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

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

- (void)navigationController:(UINavigationController *)navigationController 
didShowViewController:(UIViewController *)viewController animated:(BOOL)animated
{
[viewController viewDidAppear:animated];
}

此后,该应用程序开始在 iOS4.3 中正常运行。然而,在 iOS5 中没有,因为它调用了两次 viewDidAppear(第一次调用的是 navigationController:didShowViewController:animated:)

我应该怎么做才能只调用一次 viewDidAppear?

非常感谢

最佳答案

我看到的唯一真正的解决方案(或者更确切地说是 iOS 4.x 的解决方法)如果您在 viewWillAppear 调用中设置某种状态并检查它是否已在后续调用中设置,例如

-(void)viewWillAppear:(BOOL)animated {
if (!viewWillAppearCalled) {
viewWillAppearCalled = YES;

/* do stuff */
}
}

然后您可以安全地手动调用它以兼容 iOS 4.x。

对于 viewDidAppear、viewWillDisappear 和 viewDidDisappear 也可以做同样的事情。

关于ios - viewDidAppear 在 iOS5 中调用了两次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8646060/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com