2013-02-07 58 views
0

我目前正在嘗試切換特定UINavigationController的根視圖控制器。我相信這個問題已被多次詢問,但似乎沒有人在stackoverflow上給出正確的答案。在UINavigationController中切換RootView

我目前使用這個作爲指導:http://starterstep.wordpress.com/2009/03/05/changing-a-uinavigationcontroller%E2%80%99s-root-view-controller/#comments

不過,我似乎無法動態訪問的UINavigationController。當我在另一個.m文件中時,它將無法訪問此導航控制器,因爲我在我的appdelegate.m文件中初始化了它。

任何想法將不勝感激。 由於提前, 自由

+0

您是否試圖更改整個應用程序或特定UINavigationController的根視圖控制器?你的第一句話似乎與帖子的標題相沖突,所以我不知道。 – Joel

+0

特定的UINavigationController。我只有一個。 – freedom

回答

0

當您在應用程序委託中初始化UINavigationController時,只需保留對其的引用即可。創建你的應用程序委託類的屬性來存儲參考:

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

@property (nonatomic, retain) UINavigationController *myRootViewController; 

那麼無論什麼時候你要訪問它,做這樣的事情:

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

(其中MyAppDelegate是你的應用程序代理的名稱類)。

+0

mucho gracias !! – freedom

0

如何使用notificationdelegate,你的viewController發送改變RootViewController的消息。

和AppDelegate接收消息,然後更改rootViewController。

相關問題