我需要从应用程序委托中检测到主 UIView(用户实际正在观看的视图)已更改。
- 他有一个iOS通知吗?
- 如果没有,我可以从计时器执行一个功能......但是如何检查主视图(用户实际正在观看的视图)是否已更改?
-弗雷德
我需要从应用程序委托中检测到主 UIView(用户实际正在观看的视图)已更改。
-弗雷德
如果您希望它是通用的,您可以尝试使用通知。
在任何 UIView 中,您想要表示其更改“消失”,您可以在 dealloc 方法中添加通知
-(void)dealloc{
[[NSNotificationCenter defaultCenter] postNotificationName:@"ViewChanged" object:nil];
}
在响应更改的代码中,您可以收听“ViewChanged”通知。您可以使用以下代码执行此操作:
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(viewChanged) name:@"ViewChanged" object:nil];
-(void)viewChanged{
// do what ever you want after the view has changed
}
你应该为 UIViewController 类调整你的选择器。就像您可以将 viewWillAppear 转换为您创建的 customViewWillAppear。因此,当应用程序将生成对 viewWillAppear 的调用时,您的 swizzled 方法(customViewWillAppear)将被调用。因此,您可以确定,用户已更改屏幕。
不要忘记调用实际方法来执行 viewWillAppear 方法中编写的内容。
视图可以更改的唯一方法是您的应用程序在某种程度上对其进行了更改。