iOS 5.0视图生命周期问题

发布于 2024-12-10 05:50:56 字数 270 浏览 0 评论 0原文

我在 iOS 5.0 上遇到了自定义视图控制器子类的奇怪行为。我没有在 iPad 应用程序中使用标准导航控制器等,但我自己展示了所有视图控制器 - 这就是为什么我需要手动调用 -viewWillAppear 和 viewDidAppear 方法。

从 iOS 5.0 开始,似乎在将视图控制器的视图添加为子视图时,这些方法会在视图的视图控制器实例上自动调用。这意味着在我的例子中这些方法被调用两次。

有什么建议吗?除了创建我自己的视图生命周期方法和重写整个应用程序之外?

多谢!

I'm facing strange behaviour of my custom view controller subclasses on iOS 5.0. I'm not using standart navigation controllers etc. in my iPad application, but I'm presenting all view controllers myself - this is why I needed to call -viewWillAppear and viewDidAppear methods manually.

Since iOS 5.0, it seems like when adding view controller's view as a subview, these methods are called automatically on view's view controller instance. Which means that these methods are called twice in my case.

Any suggestions? other than creating my own view life-cycle methods and rewriting whole app?

Thanks a lot!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

是伱的 2024-12-17 05:50:56

将以下内容添加到您的 UIViewController 以禁用这些 -viewWill... 和 -viewDid... 方法的自动调用:

-(BOOL)automaticallyForwardAppearanceAndRotationMethodsToChildViewControllers {
   return NO;
}

这将强制 iOS 5.0 在添加子视图时停止调用这些方法,并且不会破坏 iOS 4 的任何内容。 x。只要我继续支持 iOS 4.x 上的设备,我就会使用此方法。一旦我放弃对 iOS 4 的支持,我将重构我的代码以使用交换视图控制器的新方法(如 hypercrypt 发布的 Session 102 视频中所述)。

Add the following to your UIViewController to disable the automatic calling of those -viewWill... and -viewDid... methods:

-(BOOL)automaticallyForwardAppearanceAndRotationMethodsToChildViewControllers {
   return NO;
}

This will force iOS 5.0 to stop calling those methods when adding subviews, and won't break anything with iOS 4.x. I'm using this method as long as I continue to support devices on iOS 4.x. Once I drop support for iOS 4 I will refactor my code to use the new approach of swapping view controllers (as described in the Session 102 video posted by hypercrypt).

辞慾 2024-12-17 05:50:56

请查看 WWDC11 的第 102 场会议 - 实现 UIViewController Containment

在 iOS 5 上,您需要使用正确的视图控制器包含。

Check out Session 102 - Implementing UIViewController Containment from WWDC11.

On iOS 5 you need to use proper view controller containment.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文