![](/img/trans.png)
[英]Calling method in current view controller from App Delegate in iOS
[英]Calling view controller method from app delegate
我试图从app委托调用视图控制器中的方法,但是Xcode说选择器'myMethodHere'没有已知的类方法。 这是我的代码:
AppDelegate.m:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
[..]
[MainViewController myMethodHere];
[..]
return YES;
}
MainViewController.m:
-(void) myMethodHere {
[..]
}
我会尝试
MainViewController * vc = [[MainViewController alloc]init];
[vc myMethodHere];
[vc release];
.m
文件中导入MainViewController .h
文件中 您想要调用实例方法时尝试调用类方法。 如果视图控制器是根视图控制器,那么您应该可以这样调用它:
UIWindow *window = [UIApplication sharedApplication].keyWindow;
MainViewController *rootViewController = window.rootViewController;
[rootViewController myMethodHere];
如果它不是根视图控制器,那么你将不得不找到一些其他方法来获取实例,然后调用上面最后一行中的方法。
如果要访问故事板上的视图控制器,可以使用AppDelegate中的以下代码块:
MainViewController *rootViewController = (MainViewController*)self.window.rootViewController;
[rootViewController aMethod];
请记住添加导入。
在Swift中,你可以这样写
UIApplication.sharedApplication().keyWindow?.rootViewController?.yourMethodName()
试着写
-(void) myMethodHere;
在MainViewController.h
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.