【问题标题】:UIBarButton not executing ActionUIBarButton 不执行动作
【发布时间】:2013-09-01 10:22:18
【问题描述】:

我遇到了一个问题:我在我的 UiNavigation 控制器中以编程方式创建了一个 UIBarButton。但是,我希望它在按下时发出警报。但是,当我使用带有自定义文本的自定义栏按钮时,它不起作用:

self.navigationItem.rightBarButtonItem = self.editButtonItem;
UIBarButtonItem *addButton = [[UIBarButtonItem alloc] initWithTitle:@"Subscribe" style:UIBarButtonItemStyleDone target:nil action:@selector(subscribe:)];

self.navigationItem.rightBarButtonItem = addButton;

但是当我做一个普通的条形按钮时,它工作正常:

self.navigationItem.rightBarButtonItem = self.editButtonItem;
UIBarButtonItem *addButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAction target:self action:@selector(subscribe:)];

self.navigationItem.rightBarButtonItem = addButton;

这里是空白:

-(void)subscribe:(id)sender {

    UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Highscore" message:@"" delegate:nil cancelButtonTitle:@"Dismiss" otherButtonTitles:nil, nil];

    [alert show];

}

提前致谢, 拉菲

【问题讨论】:

    标签: ios uinavigationcontroller uibarbuttonitem


    【解决方案1】:

    替换您在初始化调用中作为target: 传递的nil

    [[UIBarButtonItem alloc] initWithTitle:@"Subscribe" 
                                     style:UIBarButtonItemStyleDone 
                                    target:nil  <---
                                    action:@selector(subscribe:)];
    

    self。你的 alloc init 应该是这样的:

    [[UIBarButtonItem alloc] initWithTitle:@"Subscribe" 
                                     style:UIBarButtonItemStyleDone 
                                    target:self
                                    action:@selector(subscribe:)];
    

    发给 nil 的消息不会产生影响 ;-)

    【讨论】:

      【解决方案2】:

      target 必须是 self,而不是 nil。否则没有人收到该操作!

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2019-06-25
        • 1970-01-01
        • 1970-01-01
        • 2017-02-21
        • 1970-01-01
        • 2012-11-11
        • 2019-08-28
        相关资源
        最近更新 更多