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