/ / navigationControllerは/ ShowViewControllerを行った - どのようにするか? - iphone、objective-c、uiviewcontroller、uinavigationcontroller

navigationControllerは/ ShowViewControllerを行いました - どのようにするか? - iphone、objective-c、uiviewcontroller、uinavigationcontroller

与えられたUINavigationControllerデリゲートメソッド:

-(void)navigationController:(UINavigationController*)navigationController (will/did)ShowViewController:(UIViewController*)viewController animated:(BOOL)animated

どのView Controllerインスタンスがイベントに関連しているかをどのように判断したり比較したりするのですか?

私はレンダリングするアプリケーションを開発していますOpenGLを使用したタッチ・ナビゲーション可能なグラフルートビューにはグラフが含まれ、プッシュされたナビゲーションコントローラにはオプションが含まれています。私はグラフのアニメーション(レンダリング)を無効にしたいと思っています。ユーザーがそれを離れて戻ったときに再び有効にしたときです。

(レンダリングはタッチ後に行う必要があります常にオン/オフではなく、イベントでもあります。テンプレートOpenGLのコード私はそれを簡単に変更することはできませんでしたが、私は最終的にそれに慣れるでしょう!

(ああ別のもの;それはタブバーアプリです各タブのナビゲーションコントローラ。なんらかの理由で、ビューは(表示/非表示)(表示/非表示)イベントは、ナビゲーションコントローラのスタック上の位置ではなく、タブを変更するときに発生するように見えます。

回答:

回答№1は0

ViewControllerのリストを保持し、表示されているViewControllersと比較します。

参照を比較するだけで比較できます

for(UIViewController *vc in viewControllerArray)
{
if(vs == viewController)
//do stuff
}

これは助けになるか、私は何かを誤解しましたか?


回答№2の場合は1

次のように修正されました。

if(viewController == [self.viewControllers objectAtIndex:0]) { NSString * bob = @ "おじさん"; }

あなたの方向性に感謝します。