检测UIView修改

时间:2011-03-15 06:57:24

标签: iphone ipad uiview uiviewcontroller uiapplicationdelegate

我需要从应用程序委托中检测到主要的UIView(用户实际正在观看的视图)已经发生了变化。

  1. 他有iOS通知吗?
  2. 如果没有,我可以从计时器执行一个功能......但是如何检查主视图(用户实际正在观看的视图)是否已经改变?
  3. -Fred

3 个答案:

答案 0 :(得分:0)

如果您希望它是通用的,您可以尝试使用通知。

在任何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
}

答案 1 :(得分:0)

你应该为UIViewController类调整你的选择器。就像你可以将viewWillAppear混合到你创建的customViewWillAppear。因此,当应用程序将生成对viewWillAppear的调用时,将调用您的混合方法(customViewWillAppear)。因此,您可以识别出用户已更改屏幕。

不要忘记调用实际方法来执行用viewWillAppear方法编写的东西。

答案 2 :(得分:-1)

视图可以更改的唯一方法是您的应用在某种程度上更改它。