我目前正在嘗試切換特定UINavigationController的根視圖控制器。我相信這個問題已被多次詢問,但似乎沒有人在stackoverflow上給出正確的答案。在UINavigationController中切換RootView
不過,我似乎無法動態訪問的UINavigationController。當我在另一個.m文件中時,它將無法訪問此導航控制器,因爲我在我的appdelegate.m文件中初始化了它。
任何想法將不勝感激。 由於提前, 自由
我目前正在嘗試切換特定UINavigationController的根視圖控制器。我相信這個問題已被多次詢問,但似乎沒有人在stackoverflow上給出正確的答案。在UINavigationController中切換RootView
不過,我似乎無法動態訪問的UINavigationController。當我在另一個.m文件中時,它將無法訪問此導航控制器,因爲我在我的appdelegate.m文件中初始化了它。
任何想法將不勝感激。 由於提前, 自由
當您在應用程序委託中初始化UINavigationController時,只需保留對其的引用即可。創建你的應用程序委託類的屬性來存儲參考:
@interface MyAppDelegate : UIResponder <UIApplicationDelegate> {
UINavigationController *myRootViewController;
}
@property (nonatomic, retain) UINavigationController *myRootViewController;
那麼無論什麼時候你要訪問它,做這樣的事情:
MyAppDelegate appDelegate = (MyAppDelegate *)[UIApplication sharedApplication].delegate;
UINavigationController *rootViewController = appDelegate.myRootViewController;
(其中MyAppDelegate是你的應用程序代理的名稱類)。
mucho gracias !! – freedom
如何使用notification
或delegate
,你的viewController發送改變RootViewController的消息。
和AppDelegate接收消息,然後更改rootViewController。
您是否試圖更改整個應用程序或特定UINavigationController的根視圖控制器?你的第一句話似乎與帖子的標題相沖突,所以我不知道。 – Joel
特定的UINavigationController。我只有一個。 – freedom