我目前正在尝试切换特定UINavigationController的根视图控制器。我相信这个问题已被多次询问,但似乎没有人在stackoverflow上给出正确答案。
但是,我似乎无法动态访问UINavigationController。当我在另一个.m文件中时,它将无法访问此导航控制器,因为我已在appdelegate.m文件中初始化它。
任何想法都将不胜感激。 提前致谢, 自由
答案 0 :(得分:0)
如何使用notification
或delegate
,您的viewController发送更改的rootViewController消息。
然后AppDelegate接收消息然后更改rootViewController。
答案 1 :(得分:0)
在app delegate中初始化UINavigationController时,只需保留对它的引用即可。在app delegate类上创建一个属性来存储引用:
@interface MyAppDelegate : UIResponder <UIApplicationDelegate> {
UINavigationController *myRootViewController;
}
@property (nonatomic, retain) UINavigationController *myRootViewController;
然后,只要您想访问它,请执行以下操作:
MyAppDelegate appDelegate = (MyAppDelegate *)[UIApplication sharedApplication].delegate;
UINavigationController *rootViewController = appDelegate.myRootViewController;
(其中MyAppDelegate是您的app delegate类的名称。)