仍在学习 Objective C 并获得正确的结构。
我有一个带有 UIViewController 的 iOS 应用程序,它有一个名为“doSomething”的已定义方法。在我的视图控制器中,我有一个视图,并在该视图中以编程方式创建了许多 UIButton(请参阅下面的带有一个按钮的示例)。
现在,当我按下按钮时,我想调用我的方法“doSomething”。我目前的做法是这样的:
[myButton addTarget:nil
action:@selector(doSomething:)
forControlEvents:UIControlEventTouchUpInside];
由于我的目标为零,它会沿着响应者链向上,直到找到一个名为“doSomething”的方法。它确实有效,但感觉不太对劲。
我已经开始考虑使用@protocol,但并没有真正理解它。我一直在看一些教程,但对我来说还不够清楚。我使用过类似表视图控制器的协议,但定义一个协议对我来说是新的。
能否为这个具体案例提供一个例子?
Thanks!
当您的目标传入视图控制器时,将在该对象上调用该方法。
Edit:
[myButton addTarget:controller
action:@selector(doSomething:)
forControlEvents:UIControlEventTouchUpInside];
假设您有一个名为控制器的变量,它是您的 UIViewController。如果您没有对控制器的引用,则只需将一个引用传递给您的视图即可。
Edit2:
查看界面:
@property (assign) UIViewController* controller;
查看实现:
@synthesize controller;
控制器:
- (void) viewDidLoad {
[super viewDidLoad];
someView.controller = self;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)