0

我目前正在尝试为特定的 UINavigationController 切换根视图控制器。我相信这个问题已被多次问过,但似乎没有人在 stackoverflow 上给出正确的答案。

我目前正在使用它作为指南:http ://starterstep.wordpress.com/2009/03/05/changeing-a-uinavigationcontroller%E2%80%99s-root-view-controller/#comments

但是,我似乎无法动态访问 UINavigationController。当我在另一个 .m 文件中时,它将无法访问此导航控制器,因为我已在我的 appdelegate.m 文件中对其进行了初始化。

任何想法将不胜感激。提前感谢,自由

4

2 回答 2

0

如何使用 anotification或 a delegate,您的 viewController 来发送更改的 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 回答