1

私のアプリでは、一般的なUIViewControllerメソッドを使用してビューを切り替えています。UINavigationControllerを使用していません。ただし、UINavigationControllerにあるvisibleViewControllerAPIを実際に使用する必要があります。

いいえ、プロジェクトをUINavigationControllerを使用するように変換することもできません。アプリ内の別のUIViewControllerが現在表示されているコントローラーであるかどうかを確認する方法はありますか?

現在、addSubviewとhiddenプロパティを使用してビューを切り替えています。(これはビューを切り替える適切な方法ではないことを私は知っています)。

とにかく、私の状況では、visibleViewControllerと同様のことを行うことは可能ですか?

ありがとう!

4

2 に答える 2

2

addSubview:を使用する場合、ビュー階層の最上位ビューを判別する唯一の方法があります。ルートビューのサブビュー配列プロパティを調べることで、トップビューを決定できます

UIView * topview = [[rootview subviews] lastObject];

visibleViewControllerに似たものを取得したい場合は、UIViewとUIViewControllerの間の関係を保持するマップを保存する必要があります。したがって、最初にトップビューを取得し、次に対応するビューコントローラを取得することで、visibleViewControllerを取得できます。

幸運を!

于 2012-06-01T02:28:06.993 に答える
0

2つの方法があります:

  1. サブビューをビューコントローラに追加してから、以下の方法を使用してサブビューを前面に表示します。

    [self.view bringSubviewToFront:aView];

  2. ビューコントローラのインスタンスをappDelegateに保持し、次のコードを使用して、そのうちの1つをrootViewControllerに設定できます。

    self.window.rootViewController = self.viewController;

于 2012-06-01T02:50:10.917 に答える