无法从AppDelegate访问ViewController

时间:2013-10-18 12:56:23

标签: iphone ios objective-c viewcontroller appdelegate

我试图在我的应用终止时保存或加载一些数据。在我的ViewController.m中,我创建了两个函数,一个用于保存,一个用于加载。

在我的AppDelegate.m中,我试图访问我的ViewController,但它似乎不起作用..

我在堆栈溢出时尝试了几种不同的方法,但是Delegate不会将它识别为ViewController或其他东西:

[self.ViewController myFunction];
[self.rootViewController myFunction];
[self.window.ViewController myFunction];

他们都不行。我究竟做错了什么?我是否使用了错误的ViewController名称?

顺便说一下,我正在使用故事板。这里的访问方法有所不同吗?

3 个答案:

答案 0 :(得分:0)

首先您需要对self.viewController的对象进行初始化,例如

self.ViewController = [[ActualNameOfViewController alloc] init];

然后调用类似

的方法
[self.ViewController myFunction];

这可能会有所帮助:)

答案 1 :(得分:0)

首先,您需要确保导入ViewController而不是使用alloc和init

////#import "ViewController.h"
ViewController *MyVc = [[ViewController alloc]init];
[MyVc myFunction];

答案 2 :(得分:0)

UIViewController课程中导入AppDelegate.m课程:

#import SampleViewController.h
之后

创建UIViewController的实例:

self.sampleViewController = [[SampleViewController alloc] 
                                   initWithNibName:@"SampleViewController" 
                                            bundle:nil];
[self.sampleViewController myFunction];

SampleViewController是UIViewController的xib名称。