UIBarButtomItem获取动作选择器

时间:2013-10-25 13:25:51

标签: ios uibarbuttonitem

我需要在运行时以编程方式更改UIBarButton位置。

如果我使用

UIBarButtonItem *b = photoEditor.navigationItem.leftBarButtonItem;
CGRect frame = b.customView.frame;
frame.origin.x = frame.origin.x + 20;

位置不变

然后我想要使用...重新创建按钮

UIBarButtonItem * btn = [[UIBarButtonItem alloc]
                         initWithTitle:title
                         style:UIBarButtonItemStyleBordered
                         target:target
                         action:selector];

但我无法访问操作信息。

要获得目标,b.target,但是如果我想要b.action?

3 个答案:

答案 0 :(得分:0)

尝试使用此链接Apply back action to uiButton的解决方案,根据需要设置按钮框架。

之后当您想再次更改框架时,请使用以下代码

    UIBarButtonItem *item = self.navigationItem.leftBarButtonItem;
    UIView *view = [item valueForKey:@"view"];
    [view setFrame:CGRectMake(0, 0, 56, 31)]; // Frame as per your need.
     self.navigationItem.leftBarButtonItem = item;

答案 1 :(得分:0)

如果您的问题是如何获取操作选择器,Apple文档是否是获得答案的正确位置:UIBarButtonItem reference

@property(nonatomic) SEL action

答案 2 :(得分:0)

你可以

 UIBarButtonItem *item = self.navigationItem.leftBarButtonItem;

item setWidth:56;