Str*_*rer 5 inheritance protocols objective-c uibutton
仍在学习Objective C并使结构正确.
我有一个带有UIViewController的iOS应用程序,它有一个名为"doSomething"的已定义方法.在我的视图控制器中,我有一个视图,在该视图中有一些我以编程方式创建的UIButton(参见下面的示例,只有一个按钮).

现在,当我按下按钮时,我想调用我的方法"doSomething".我目前这样做的方式是这样的:
[myButton addTarget:nil
action:@selector(doSomething:)
forControlEvents:UIControlEventTouchUpInside];
Run Code Online (Sandbox Code Playgroud)
由于我的目标是nil,它会响应响应者链,直到找到一个名为"doSomething"的方法.它有效,但它感觉不对.
我已经开始考虑使用@protocol,但并没有真正了解它.我一直在看一些教程,但对我来说还不够清楚.我已经使用了类似于表视图控制器的协议,但定义一个对我来说是新的.
是否有可能为这个特定案例得到一个例子?
谢谢!
当您的目标传入视图控制器时,将在该对象上调用该方法。
编辑:
[myButton addTarget:controller
action:@selector(doSomething:)
forControlEvents:UIControlEventTouchUpInside];
Run Code Online (Sandbox Code Playgroud)
假设您有一个名为控制器的变量,它是您的 UIViewController。如果您没有对控制器的引用,则只需将一个引用传递给您的视图即可。
编辑2:
查看界面:
@property (assign) UIViewController* controller;
Run Code Online (Sandbox Code Playgroud)
查看实现:
@synthesize controller;
Run Code Online (Sandbox Code Playgroud)
控制器:
- (void) viewDidLoad {
[super viewDidLoad];
someView.controller = self;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2667 次 |
| 最近记录: |