我正在尝试从app委托调用视图控制器中的方法,但是Xcode说没有选择器'myMethodHere'的已知类方法。这是我的代码:
AppDelegate.m:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
[..]
[MainViewController myMethodHere];
[..]
return YES;
}
MainViewController.m:
-(void) myMethodHere {
[..]
}
答案 0 :(得分:13)
我会尝试
MainViewController * vc = [[MainViewController alloc]init];
[vc myMethodHere];
[vc release];
.m
文件.h
文件答案 1 :(得分:11)
如果要调用实例方法,则尝试调用类方法。如果视图控制器是 root 视图控制器,那么您应该可以这样调用它:
UIWindow *window = [UIApplication sharedApplication].keyWindow;
MainViewController *rootViewController = window.rootViewController;
[rootViewController myMethodHere];
如果它不是根视图控制器,那么你必须找到一些其他方法来获取实例,然后调用上面最后一行中的方法。
答案 2 :(得分:6)
如果要访问故事板上的视图控制器,可以使用AppDelegate中的这段代码:
MainViewController *rootViewController = (MainViewController*)self.window.rootViewController;
[rootViewController aMethod];
请记住添加导入。
答案 3 :(得分:1)
在Swift中,你可以像这样写
UIApplication.sharedApplication().keyWindow?.rootViewController?.yourMethodName()
答案 4 :(得分:0)
尝试写
-(void) myMethodHere;
MainViewController.h
中的