你能给我解释一下管理UIViewController生命周期的正确方式吗?

特别是,我想知道如何在Mono Touch中对UIViewController类使用InitializeViewDidLoadViewWillAppearViewDidAppearViewWillDisappearViewDidDisappearViewDidUnloadDispose方法.

推荐答案

当您加载/呈现/隐藏视图控制器时,IOS会在适当的时间自动调用所有这些命令.需要注意的是,这些方法是附加到UIViewController上的,而不是附加到UIView本身的.仅仅使用UIView是无法获得这些功能的.

在苹果的网站here上有很多很棒的文档.不过,简单地说:

  • ViewDidLoad-在创建类并从xib加载时调用.非常适合初始设置和一次性工作.

  • ViewWillAppear-在视图出现之前调用,用于隐藏/显示字段或每次在视图可见之前希望执行的任何操作.因为您可能会在视图之间来回切换,所以每当您的视图即将出现在屏幕上时,都会调用此函数.

  • ViewDidAppear-视图出现后调用-启动动画或从API加载外部数据的好地方.

  • ViewWillDisappear/DidDisappear——与ViewWillAppear/ViewDidAppear的 idea 相同.

  • ViewDidUnload/ViewDidDispose-在Objective-C中,这是你清理和释放东西的地方,但这是自动处理的,所以你不需要在这里做太多事情.

Ios相关问答推荐

更改文本在Flutter 中的位置

在某些情况下,UIHostingController在自动调整时不能调整大小

Swift locationManager.requestWhenInUseAuthorization() 不提示用户

更改初始控制器无效

SwiftUI中的Tap手势无法识别视图上的偏移变化

在我的 M1 上出现 Architecture arm64 问题,因此我无法运行我的旧项目

在 SwiftUI 中重构提取到子视图的 GeometryReader 代码

在 Swift 中映射 MySQL 数据

.onAppear() 函数不适用于 NavigationLink

@Environment 的存在会导致列表在滚动时不断重建其内容

Xcode 14 弃用了位码 - 但为什么呢?

在 Swift 中合并子数组

如何将私钥添加到分发证书?

如何告诉 SwiftUI 视图绑定到嵌套的 ObservableObjects

无法同时满足约束 - 没有适当的约束

如何在 UIActivityViewController 中设置邮件主题?

ios 崩溃 EXC_BAD_ACCESS KERN_INVALID_ADDRESS

有什么方法可以加粗 NSString 的一部分?

比较没有时间分量的 NSDates

如何使用 AFNetworking 设置超时