我有一个下载屏幕,我想在退出或更改视图时警告用户。
我找不到合适的方法吗?
如何解决?
谢谢
- (void)viewWillAppear:(BOOL)animated
此方法指示哪个视图将出现在当前视图中。
- (void)viewDidDisappear:(BOOL)animated
此方法表明视图将被移除。
您可以使用 viewDidDisappear 方法进行检查: 它通知视图控制器其视图已从视图层次结构中删除。
- (void)viewDidDisappear:(BOOL)animated
您可以重写此方法以执行与关闭或隐藏视图相关的其他任务。如果你重写了这个方法,你必须在你的实现中调用 super 。
和 viewWillAppear: 它通知视图控制器它的视图即将被添加到视图层次结构中。
- (void)viewWillAppear:(BOOL)animated
在接收者的视图即将添加到视图层次结构之前以及配置任何动画以显示视图之前调用此方法。您可以覆盖此方法以执行与显示视图相关的自定义任务。
我们可以有不同的方法,比如
- (void)viewWillAppear:(BOOL)animated
- (void)viewWillDisappear:(BOOL)animated
- (void)viewDidappear:(BOOL)animated
- (void)viewDidDisappear:(BOOL)animated
您可以覆盖的任何方法。我们可以在comming/moving查看之前/之后使用这些方法。
视图控制器有一些方法,当视图将被动画关闭时,已经提到过。但是,您似乎希望用户在屏幕动画之前确认导航,而不是在用户已经从视图动画之后发布警报。
我建议您创建一个自定义的取消或返回按钮,以在用户尝试退出视图控制器时进行处理。在视图动画关闭之前显示 UIAlert 并要求用户确认或取消操作。如果用户取消,则导航离开或停留在当前视图上
viewWillDisappear 似乎是覆盖的正确方法 - 让用户有机会在视图消失之前做某事。但是,我认为您无法阻止视图消失,因为 viewwillDisappear 的文档指出您必须在实现中调用 super.viewWillDisappear。