gpt4 book ai didi

objective-c - 从 subview 中的 UIButton 调用 UIViewController 中的方法

转载 作者:太空狗 更新时间:2023-10-30 03:52:54 25 4
gpt4 key购买 nike

仍在学习 Objective C 并确保结构正确。

我有一个带有 UIViewController 的 iOS 应用程序,它有一个名为“doSomething”的已定义方法。在我的 View Controller 中,我有一个 View ,在该 View 中,我以编程方式创建了许多 UIButton(参见下面的一个按钮示例)。

enter image description here

现在,当我按下按钮时,我想调用我的方法“doSomething”。我目前的做法是这样的:

[myButton addTarget:nil 
action:@selector(doSomething:)
forControlEvents:UIControlEventTouchUpInside];

因为我的目标是 nil 它沿着响应者链上升,直到它找到一个名为“doSomething”的方法。它有效,但感觉不太对。

我已经开始研究使用@protocol,但并没有真正理解它。我一直在看一些教程,但对我来说还不够清楚。我使用过类似 TableView Controller 的协议(protocol),但定义一个对我来说是新的。

是否可以获得针对此特定案例的示例?

谢谢!

最佳答案

当您的目标传递到 View Controller 时,将在该对象上调用该方法。

编辑:

[myButton addTarget:controller 
action:@selector(doSomething:)
forControlEvents:UIControlEventTouchUpInside];

假设您有一个名为 controller 的变量,它是您的 UIViewController。如果您没有对 Controller 的引用,则只需将一个传递给您的 View 即可。

编辑2:

查看界面:

@property (assign) UIViewController* controller;

查看实现:

@synthesize controller;

Controller :

- (void) viewDidLoad {
[super viewDidLoad];
someView.controller = self;
}

关于objective-c - 从 subview 中的 UIButton 调用 UIViewController 中的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6119071/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com