gpt4 book ai didi

ios - 从 superview 添加 superview 方法作为目标到 subview 的 UIButton

转载 作者:行者123 更新时间:2023-11-29 02:56:19 29 4
gpt4 key购买 nike

我正在开发一个应用程序,其中我的所有 UIViewControllers 具有通用的 UITableView 结构。所以我创建了一个包含通用结构的 UITableView 子类,然后我将这个 View 添加到我的 UIViewController

UITableView 显示正确,但我需要将 addTarget 添加到 UIButton 并从我的 ViewController 添加到自定义 UITableViewCell 和方法写在UIViewController中。

谁能告诉我如何实现这一目标?

最佳答案

您需要进行程序设计以解决此问题。然而,您已经走得足够远,可以返回并更改您的设计。所以对你来说更好的选择是 NSNotificationCenter

对于您的情况,请执行以下操作:

  1. 在编写方法的 viewController 中,假设方法名称是 myX-Method:(执行按钮的目标功能),然后在 viewDidLoad 这个 Controller 的只是添加这一行。

    -(void)viewDidLoad
    {
    [super viewDidLoad];
    // Do any additional setup after loading the view.
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(myX-Method:) name:@"NOTIFY_CUSTOM_BUTTON" object:nil];
    }
  2. 现在,在您的 UITableViewCell 类中,像往常一样将本地方法设置为按钮目标,比方说,myLocalMethod:

    <
  3. 现在在这个本地方法中,像这样发布通知消息。例如,我只是将当前单元格的按钮文本作为消息传递给通知。

    -(void) myLocalMethod:(UIButton *)button{
    [[NSNotificationCenter defaultCenter] postNotificationName:@"NOTIFY_CUSTOM_BUTTON" object: button.title];
    }

这样您就不必依赖委托(delegate)等。使用通知对象在 myX-Method: 中收集您的值,如下所示:

-(void)myX-Method:(NSNotification *)dict {
NSString *buttonTitle = [dict valueForKey:@"object"];
NSLog(@"Button Clicked : %@", buttonTitle);
}

希望这个简单的解决方案能解决您的问题。

引用here对于示例代码。但是在示例代码项目中,请搜索 NSNotificationCenter

关于ios - 从 superview 添加 superview 方法作为目标到 subview 的 UIButton,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23866300/

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