iphone – 从另一个类调用函数 – Obj C.

我试图找出如何从我的另一个类中调用函数.我正在使用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).

点赞