アプリのコンテンツ全体の上に UIView を表示/アニメーション化したいと考えています。次のアプローチは機能しますが、すべてをウィンドウにアタッチするのはあまり良い考えではありません。
[[[[UIApplication sharedApplication] delegate] window] addSubview:view]
良い代替手段は何ですか?
ビュー階層が何であるかがわからない可能性があるため、アプローチは正しいと思います。ウィンドウにアタッチする必要があります。
コードを少し整理するためにできることは、そのロジックを、AppDelegate
または何かを介してアクセス可能ないくつかのメソッドにカプセル化することです。
- (void)addAlwaysVisibleView:(UIView *)topmostView;
- (void)removeAlwaysVisibleView;
その後AppDelegate
、状態を保持し、「常に表示される」ビューが既にアタッチされているかどうかを認識して、物事を整理し、必要に応じてハウスクリーニングを行うことができます。