我是iOS开发和Swift的新手,我遇到了视图控制器事件的问题,当顶视图控制器解散并且再次显示前一个视图控制器时,应该自动调用什么事件?
其实我的意思是我有视图控制器A和视图控制器B,我点击视图控制器A的一个按钮(假设去B视图控制器)并移动视图控制器B然后执行视图控制器B的一些任务然后单击一个按钮(假设回去)在那个时候我解雇视图控制器B然后应用程序自动显示视图控制器A,在这种情况下我必须触发一个方法,但我的问题是视图控制器A它是如何知道它将重新出现显示?
答案 0 :(得分:1)
根据您的情况,
查看控制器A 知道它通过实施UIViewController
两种方法之一重新出现 - 对您的要求的依赖 - :
通知视图控制器其视图即将添加到a 查看层次结构。
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
// ...
}
或者
通知视图控制器其视图已添加到视图中 层次结构。
override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(animated)
// ...
}
请注意,在显示/推送视图控制器时,这些方法也将被执行,而不仅仅是在被解除/弹出后。
在您的情况下,您需要知道 View Controller B 是否正在消失或已消失。为此,您还可以实现UIViewController
方法之一 - 也可以根据您的要求进行索赔 - :
通知视图控制器其视图即将从中删除 视图层次结构。
或者
通知视图控制器其视图已从视图中删除 层次结构。
因此,假设当前呈现的视图控制器是视图控制器B并且它将被解除,则在两个视图控制器之间组合方法调用的层次结构应该如下:
查看控制器 B => viewWillDisappear(_:)
。
查看控制器 A => viewWillAppear(_:)
。
查看控制器 B => viewDidDisappear(_:)
。
查看控制器 A => viewDidAppear(_:)
。