我有一个项目,这是基于导航的应用程序模板。在AppDelegate中有方法-applicationDidFinishLoading:
和-applicationWillTerminate:
。在这些方法中,我加载和保存应用程序数据,并将其存储在一个实例变量中(它实际上是一个对象图)。
当应用程序加载时,它加载MainWindow.xib,它有一个NavigationConroller,而它又有一个RootViewController。RootViewController nibName
属性指向RootView (我的实际控制器类)。
在我的类中,我希望引用我在-applicationDidFinishLoading:
方法中创建的对象,这样我就可以获得对它的引用。
有人能告诉我怎么做吗?我知道如何在我以编程方式创建的对象之间引用,但我似乎不知道如何返回,因为中间的步骤是从NIB文件内部完成的。
发布于 2008-10-24 03:14:31
对于我需要在应用程序中的任何位置访问的变量(通常是模型数据结构),请在AppDelegate类中声明它们。当您需要引用它时:
YourAppDelegate *appDelegate = (YourAppDelegate *)[[UIApplication sharedApplication] delegate];
//and then access the variable by appDelegate.variable
发布于 2008-10-23 23:51:59
如果我理解您的问题,您想在AppDelegate对象中引用成员变量/属性吗?最简单的方法是使用[UIApplication sharedApplication delegate]返回对对象的引用。
如果你有一个名为window的属性,你可以这样做:
UIWindow *mainWindow = [[[UIApplication sharedApplication] delegate] window];
//do something with mainWindow
发布于 2011-02-27 19:13:34
以下是iOS4.0及更高版本的一个定义良好的便携替代方案:
UIApplication *myApplication = [UIApplication sharedApplication];
UIWindow *mainWindow = [myApplication keyWindow];
UIViewController *rootViewController = [mainWindow rootViewController];
或者,在一行中,
UIViewController *rootViewController = [[[UIApplication sharedApplication] keyWindow] rootViewController];
别忘了设置窗口的rootViewController
属性(比如在IB中),否则这就是jack。
https://stackoverflow.com/questions/231947
复制相似问题