メインの 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 クラスのセレクターをスウィズルする必要があります。作成したcustomViewWillAppearにviewWillAppearをスウィズルできるように。したがって、アプリケーションが viewWillAppear の呼び出しを生成すると、swizzled メソッド (customViewWillAppear) が呼び出されます。したがって、ユーザーが画面を変更したことを識別できます。
viewWillAppear メソッドに書かれている内容を実行するために、実際のメソッドを呼び出すことを忘れないでください。
ビューを変更できる唯一の方法は、アプリがビューをあるレベルで変更する場合です。