0

メインの UIView (ユーザーが実際に見ているビュー) が変更されたことをアプリケーション デリゲートから検出する必要があります。

  1. そのためのiOS通知がありますか?
  2. そうでない場合は、タイマーから関数を実行できます...しかし、メインビュー(ユーザーが実際に見ているビュー)が変更されたことを確認するにはどうすればよいですか?

-フレッド

4

3 に答える 3

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
}
于 2011-03-19T23:43:54.653 に答える
0

UIViewController クラスのセレクターをスウィズルする必要があります。作成したcustomViewWillAppearにviewWillAppearをスウィズルできるように。したがって、アプリケーションが viewWillAppear の呼び出しを生成すると、swizzled メソッド (customViewWillAppear) が呼び出されます。したがって、ユーザーが画面を変更したことを識別できます。

viewWillAppear メソッドに書かれている内容を実行するために、実際のメソッドを呼び出すことを忘れないでください。

于 2012-06-30T17:34:21.020 に答える
-1

ビューを変更できる唯一の方法は、アプリがビューをあるレベルで変更する場合です。

于 2011-03-15T07:54:17.253 に答える