0

現在、特定の UINavigationController のルート ビュー コントローラーを切り替えようとしています。この質問は何度も出されていると思いますが、stackoverflow について誰も適切な回答をしていないようです。

私は現在これをガイドとして使用しています:

ただし、 UINavigationController に動的にアクセスできないようです。別の .m ファイルにいる場合、appdelegate.m ファイルで初期化したため、このナビゲーション コントローラーにアクセスできません。

どんな考えでも大歓迎です。前もってありがとう、自由

4

2 に答える 2

0

notificationviewControllerのaまたはaを使用してdelegate、変化するrootViewControllerメッセージを送信するのはどうでしょうか。

そして、AppDelegateはメッセージを受信し、rootViewControllerを変更します。

于 2013-02-07T01:29:33.010 に答える
0

アプリ デリゲートで UINavigationController を初期化するときは、それへの参照を保持するだけです。アプリのデリゲート クラスにプロパティを作成して、参照を保存します。

@interface MyAppDelegate : UIResponder <UIApplicationDelegate> {
    UINavigationController *myRootViewController;
}

@property (nonatomic, retain) UINavigationController *myRootViewController;

次に、アクセスしたいときはいつでも、次のようにします。

MyAppDelegate appDelegate = (MyAppDelegate *)[UIApplication sharedApplication].delegate;
UINavigationController *rootViewController = appDelegate.myRootViewController;

(ここで、MyAppDelegate はアプリ デリゲート クラスの名前です。)

于 2013-02-07T01:36:44.920 に答える