条形按钮项目事件未在ios 6或更晚版本中激活

时间:2013-04-02 02:29:13

标签: uibarbuttonitem

我试过这段代码: 自定义barbuttonitem:

-(id)initWithImage:(UIImage *)image title:(NSString*)title target:(id)target action:(SEL)action {
UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
button.frame= CGRectMake(0.0, 0.0, image.size.width, image.size.height);
button.titleLabel.font = [UIFont boldSystemFontOfSize:12];
button.titleLabel.shadowOffset = CGSizeMake(0, -1);
button.titleLabel.shadowColor = [UIColor colorWithWhite:0 alpha:0.5];
button.titleLabel.textColor = [UIColor redColor];
[button setTitle:title forState:UIControlStateNormal];
[button setBackgroundImage:image forState:UIControlStateNormal];
[button addTarget:target action:action forControlEvents:UIControlEventTouchUpInside];
UIView *view =[[UIView alloc] initWithFrame:CGRectMake(0.0, 0.0, image.size.width, image.size.height) ];
[view addSubview:button];
self = [[UIBarButtonItem alloc] initWithCustomView:view];
return self;

}

并使用它:

self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"my_account_icon.png"] title:@"" target:self action:@selector(buttonClick:)];

但是在ios 6活动中没有激活,ios 5正常运行,请帮帮我!!!!

2 个答案:

答案 0 :(得分:0)

设置为UIBarButtonItem

customView不会触发操作。

答案 1 :(得分:0)

尝试以下方法:

-(id)initWithImage:(UIImage *)image title:(NSString*)title target:(id)target action:(SEL)action 
{
    //create whatever custom views you need

    UIView *view =[[UIView alloc] initWithFrame:CGRectMake(0.0, 0.0, image.size.width, image.size.height) ];

    UITapGestureRecognizer * gestureRec = [[UITapGestureRecognizer alloc] initWithTarget: target action: action];
    [view addGestureRecognizer: gestureRec];

    //add your custom subviews to the view

    self = [[UIBarButtonItem alloc] initWithCustomView:view];
    return self;
}

将姿势识别器添加到UIBarButtonItem的子视图中,即使使用自定义视图初始化UIBarButtonItem,也能为我工作。 祝你好运!