-1

我有一个带有方法的 viewController:doSomething:。我有一个菜单类,它设置了一个带有按钮的菜单,我在其上“添加了一个目标”,所以我可以从按钮调用一个选择器。这个子类是从 viewController 实例化的。

当我点击实例化菜单的按钮时,我想调用 viewController 中的方法。设置它的明显方法是向 NSNotifications 添加一个观察者,但似乎有点笨拙。我可以以某种方式将选择器从视图控制器传递给实例,如下所示:

在菜单.h

-(void)setupMenuWithAction:(SEL)action {

从 ViewController 调用:

[menu setupMenuWithAction:@selector(doSomething:)];

试过了,它不起作用,当点击按钮时会出现无法识别的选择器错误,但我想知道它是否是一个有效的概念,如果是,我该如何解决它。

4

2 回答 2

3

更改方法Menu.h以包含一个目标 - 制作它-(void)setupMenuWithAction:(SEL)action andTarget:(id)target。在该方法中,调用选择器[target performSelector:action];

然后,从ViewController, 调用[menu setupMenuWithAction:@selector(doSomething:) andTarget:self];

于 2013-07-13T11:55:10.500 回答
0

对于具有实际选择器的类中的函数,使用“+”而不是“-”。即使用类方法而不是实例方法

于 2014-08-07T08:52:02.320 回答