【发布时间】:2016-02-29 12:37:58
【问题描述】:
我正在尝试将自定义 UIButton 显示为 UINavigationItem 的 rightBarButtonItem。
我写了以下代码:
UIButton *inviteButton = [UIButton buttonWithType:UIButtonTypeCustom];
[inviteButton setTitle:@"Invite" forState:UIControlStateNormal];
inviteButton.frame = CGRectMake(0, 0, 30, 30);
inviteButton.backgroundColor = [UIColor redColor];
inviteButton.layer.borderColor = [UIColor blueColor].CGColor;
inviteButton.layer.borderWidth = 1.0f;
UIBarButtonItem *inviteButtonContainer = [[UIBarButtonItem alloc] initWithCustomView:inviteButton];
viewController.navigationItem.rightBarButtonItem = inviteButtonContainer;
我的导航栏中没有显示任何内容。
但是,使用以下代码,我可以看到一个基本按钮:
UIBarButtonItem *inviteButton = [[UIBarButtonItem alloc] initWithTitle:@"Invite"
style:UIBarButtonItemStyleDone
target:self
action:nil];
viewController.navigationItem.rightBarButtonItem = inviteButton;
但这显然不是我所追求的,因为我正在寻找按钮外观。
编辑
我试图将
UIBarButtonItem (inviteButtonContainer) 的相同实例添加到许多导航栏。这样做,它仅在最后一个导航栏上可见。但是,如果我使用简单
UIBarButtonItem 的相同实例(没有自定义视图),它会显示在每个导航栏上。知道为什么吗?
【问题讨论】:
-
我只是按照你的建议做了,但没有改变任何东西。
UIButton已经是UIView的子类,所以我不明白你的意思。 -
你把代码放在哪里了?
-
什么是 viewController ?
-
您的代码在我这边完美运行,“邀请”标题显示不正确(因为它的长度),但按钮在那里。我在模拟器和 iPhone 5 上运行它。你可能没有在正确的地方使用。
标签: ios objective-c iphone uibutton uibarbuttonitem