iOS:通过AppDelegate访问firstviewcontroller

时间:2014-02-26 14:01:24

标签: ios appdelegate

我想通过AppDelegate类访问我的第一个Viewcontroller的IBOutlet。我的项目基于故事板,并且没有第一个Viewcontroller的引用。 这是做什么的? 我知道我应该将这个IBOutlet设置为第一个Viewcontroller中的属性,但是在AppDelegate中?我怎么能访问它? 感谢

3 个答案:

答案 0 :(得分:0)

您可以通过以下方式从应用的代表处访问rootViewController

self.window.rootViewController

示例:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {

    MyVCClass *firstVC = (MyVCClass*)self.window.rootViewController;
    [firstVC someMethod];

}

小心,您的ViewController可能尚未加载/启动。

答案 1 :(得分:0)

因为您没有为应用程序的UIWindow设置rootViewController,所以要执行  [[UIApplication sharedApplication].keyWindow rootViewController]会给你零。

如果您使用故事板进行导航,那么您只需执行此操作即可获取rootViewController

UIViewController *vc = [self.navigationController.viewControllers objectAtIndex:0];

答案 2 :(得分:0)

首先在AppDelegate.m中导入ViewController,如下所示:

#import "YourViewController"

然后在AppDelegate.m中放置以下代码

 @implementation AppDelegate

 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:   (NSDictionary *)launchOptions
 {

   YourViewController * view = [[YourViewController alloc]init];
    self.window.rootViewController = view;
 }