我试图找出如何从我的另一个类中调用函数.我正在使用RootViewController来设置我的一个视图,比如说AnotherViewController
所以在我的AnotherViewController中我要添加.h文件
@class RootViewController
在.m文件中我将导入View
#import "RootViewController.h"
我有一个叫做的函数:
-(void)toggleView {
//do something }
然后在我的AnotherViewController中,我有一个按钮分配为:
-(void)buttonAction {
//}
在buttonAction中,我希望能够在我的RootViewController中调用函数toggleView.
有人可以澄清我是如何做到这一点的.
我试过添加这是我的buttonAction:
RootViewController * returnRootObject = [[RootViewController alloc] init];
[returnRootObject toggleView];
但我不认为这是正确的.
最佳答案 你需要在AnotherViewController中创建一个委托变量,当你从RootViewController初始化它时,将RootViewController的实例设置为AnotherViewController的委托.
为此,将实例变量添加到AnotherViewController:“id delegate;”.然后,向AnotherViewController添加两个方法:
- (id)delegate {
return delegate;
}
- (void)setDelegate:(id)newDelegate {
delegate = newDelegate;
}
最后,在RootViewController中,无论在哪里初始化AnotherViewController,都可以
[anotherViewControllerInstance setDelegate:self];
然后,当你想执行toggleView时,做
[delegate toggleView];
或者,您可以使RootViewController成为单例,但委托方法肯定是更好的做法.我还想指出,我刚刚告诉你的方法是基于Objective-C 1.0的. Objective-C 2.0有一些新的属性,但是当我学习Obj-C时,这让我很困惑.在查看属性之前,我会先得到1.0(这样你就会明白他们先做什么,他们基本上只是自动制作getter和setter).