我有一个空白,比如- (void)doSomething在特定的控制器中.我可以通过[self doSomething]在这个控制器中调用它,但我不知道如何从另一个.m文件调用此void.
我想在- (IBAction)动作中调用它:( id)发送者
我尝试过使用performSelector,但是我在日志中得到了一个'unreconiezd selector send'.我不知道我是否必须使用通知中心,或委托......
谢谢,罗南.
您必须在第二个控制器中拥有第一个控制器的实例(您在其中声明函数的实例).
FirstViewController *firstController = [[FirstViewController alloc] init];
[firstController doSomething];
Run Code Online (Sandbox Code Playgroud)
如果您的第一个控制器在其他地方被声明,并且您希望第二个控制器知道它,请FirstViewController在第二个控制器中使用类型属性,并在需要时将其初始化为您的FirstViewController实例.
有时,如果您有多个控制器实例并且希望每个控制器实例都了解所有其他实例,那么这可能会非常复杂,因此我建议您将方法重写为类方法:
+ (void) doSomething;
Run Code Online (Sandbox Code Playgroud)
所以你可以随时随地调用它
[FirstViewController doSomething];
Run Code Online (Sandbox Code Playgroud)