【问题标题】:How to associate a method with this button?如何将方法与此按钮关联?
【发布时间】:2010-10-11 10:17:13
【问题描述】:

我有一个显示图像和文本的导航栏按钮。这是代码:

UIImage *saveImage = [UIImage imageNamed:@"star.png"];

UIButton *saveButton = [UIButton buttonWithType:UIButtonTypeCustom];

[saveButton setBackgroundImage:saveImage forState:UIControlStateNormal];
[saveButton setTitle:@"Save" forState:UIControlStateNormal];

saveButton.frame = (CGRect) {
    .size.width = 100,
    .size.height = 30,
};

UIBarButtonItem *barButton= [[UIBarButtonItem alloc] initWithCustomView:saveButton];

[self.navigationItem setRightBarButtonItem:barButton animated:YES];

我试过了

[barButton setAction:@selector(saveArray)];

但它不起作用。

【问题讨论】:

    标签: objective-c cocoa-touch uibutton selector uinavigationitem


    【解决方案1】:

    请记住,您还必须指定目标。您可以将操作/目标设置为 UIButton 对象本身:

    [saveButton addTarget:target action:@selector(saveArray) forControlEvents:UIControlEventTouchUpInside];
    

    我尝试直接将目标/操作设置为 UIBarButtonItem,但由于某种原因,在 UIButton 用于自定义视图的情况下它似乎不起作用。

    【讨论】:

      【解决方案2】:

      你记得设定目标吗?如果所需的方法属于同一个类,你可以这样做:

      [barButton setTarget:self];
      

      也就是说,actiontarget 都是属性(Obj-C 2.0 的新特性),请考虑使用点符号:

      barButton.action = @selector(saveArray:)
      barButton.target = self;
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-05-06
        • 1970-01-01
        • 1970-01-01
        • 2011-06-09
        • 1970-01-01
        • 2018-11-19
        • 1970-01-01
        • 2010-11-14
        相关资源
        最近更新 更多