向自定义视图中的 UIButton 添加操作

Posted

技术标签:

【中文标题】向自定义视图中的 UIButton 添加操作【英文标题】:Add action to UIButton which in a customview 【发布时间】:2010-12-17 09:36:54 【问题描述】:

我有一个自定义视图,它有一个 UIButton。我把这个视图加到我的navigationItem的rightbarButtonItem,没关系,但是我得给这个按钮加个动作。

这是我的代码;

-(void)showMessage:(id)sender

    UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"next" message:nil delegate:self cancelButtonTitle:nil otherButtonTitles:nil];
    [alert show];


- (void)viewDidLoad 
    UpDownButtonView *buttonView = [[UpDownButtonView alloc] initWithNibName:@"UpDownButtonView" bundle:nil];
    [buttonView.upButton addTarget:self action:@selector(next:) forControlEvents:UIControlEventTouchUpInside];
    [buttonView.downButton addTarget:self action:@selector(prev:) forControlEvents:UIControlEventTouchUpInside];
    buttonView.view.frame = CGRectMake(0,0,95,34);
    UIBarButtonItem* item = [[UIBarButtonItem alloc] initWithCustomView:buttonView.view]; 

    self.navigationItem.rightBarButtonItem = item;
    [self setTitle:@"Details"];

    [super viewDidLoad];

谢谢。

【问题讨论】:

【参考方案1】:

您不需要带有 UIButton 的自定义视图,您需要的是分配并初始化 UIBarButtonItem 并将其放在导航栏上

代码如下:

UIBarButtonItem *backButton = [[UIBarButtonItem alloc] initWithTitle:NSLocalizedString(@"Back", @"Back Button") style:UIBarButtonItemStylePlain target:self action:@selector(doneButtonPressed:)];

self.navigationItem.leftBarButtonItem = backButton;
[backButton release];

【讨论】:

是的,但我可能会添加更多按钮或其他东西,所以我需要在自定义视图中进行。有什么想法吗?

以上是关于向自定义视图中的 UIButton 添加操作的主要内容,如果未能解决你的问题,请参考以下文章

使用 UIBezierPath 将半径设置为某些角并向自定义 UIButton 添加阴影

向自定义类发出强制转换

关于在 View 上向 UIButton 添加目标的 MVC 实践

自定义视图中未调用 UIButton 操作

向自定义正则表达式添加动态错误消息

向自定义 React 组件添加额外的类名