无法将 rightBarButtonItem 添加到 UIViewController

Posted

技术标签:

【中文标题】无法将 rightBarButtonItem 添加到 UIViewController【英文标题】:Can't add a rightBarButtonItem to a UIViewController 【发布时间】:2011-09-05 13:34:04 【问题描述】:

我有下一个代码:

- (id) initWith...
  if (self == [super initWithNibName:@"EmptyViewController"
     bundle:[NSBundle mainBundle]]) 
     ...

    back_btn = [[UIBarButtonItem alloc] initWithTitle:@"Back" 
                                                style:UIBarButtonItemStyleBordered 
                                               target:self
                                               action:@selector(backParentViewController)];
    self.navigationItem.leftBarButtonItem = back_btn;
    update_btn = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemRefresh
                                                               target:self action:@selector(refresh)];
    self.navigationItem.rightBarButtonItem = update_btn;
    self.title = [utils LabelFromKey:@"commons.nav-button.reports"];
        self.navigationItem.title = [utils LabelFromKey:@"commons.nav-button.reports"];

但是 rightBarButton 是不可见的。

我尝试将代码移动到 viewDidLoad,并将按钮设置为 navigationController.navigationItem 但不显示按钮

self.navigationController.navigationItem.rightBarButtonItem = update_btn;

有什么建议吗?

谢谢

【问题讨论】:

你导航控制器吗? 【参考方案1】:

删除 ivar update_btn。使用

viewDidLoad 开始分配
UIBarButtonItem *update_btn = [[UIBarButtonItem alloc] init...;

用这个语句分配项目:

self.navigationItem.rightBarButtonItem = update_btn;
[update_btn release];

让我知道这是否适合你。

【讨论】:

【参考方案2】:

抱歉耽搁了,要使其正常工作,您必须在方法 viewDidAppear 中应用 UIBarButtonItem

【讨论】:

以上是关于无法将 rightBarButtonItem 添加到 UIViewController的主要内容,如果未能解决你的问题,请参考以下文章

RightBarButtonItem 未出现在导航栏中

UINavigationController 并将徽章添加到 rightBarButtonItem

无法获取 navigationItem.rightBarButtonItem 的 UIView/Frame - iOS

rightBarButtonItem 添加segue

从导航控制器设置 rightBarButtonItem

无法在导航栏上添加导航项