【发布时间】:2015-06-29 08:21:15
【问题描述】:
我正在尝试在我的标签栏navigationbar 中添加一个右栏按钮,它在 iphone 5 和 5s 设备以及所有模拟器中都可以正常工作。但它没有出现在 iphone 6 和 6+ 设备中。但是它在 iphone 6 和 6+ 的模拟器上运行良好。
这是按钮代码。
@property (nonatomic, weak) UIButton *rightButton;
-(void)setNavigationBarRightButton
{
rightButton = [UIButton buttonWithType:UIButtonTypeCustom];
rightButton.frame = CGRectMake(0, 0, 40, 40);
rightButton.layer.cornerRadius = 20;
rightButton.layer.borderColor = [[UIColor lightGrayColor] CGColor];
rightButton.layer.borderWidth = 2;
rightButton.imageView.layer.cornerRadius = 20;
rightButton.clipsToBounds = YES;
UIImage* image;
NSData* imageData = [[NSUserDefaults standardUserDefaults] objectForKey:@"image"];
if (imageData == (id)[NSNull null] || imageData.length == 0) {
NSLog(@"image data is %@",imageData);
image = [UIImage imageNamed:@"defaultIcon.png"];
}
else {
image = [UIImage imageWithData:imageData];
}
// rightButton.imageView.image = image;
[rightButton setBackgroundImage:image forState:UIControlStateNormal];
[rightButton addTarget:self action:@selector(onClickrighttButton:) forControlEvents:UIControlEventTouchUpInside];
UIBarButtonItem *rightBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:rightButton];
self.tabBarController.navigationItem.rightBarButtonItem = rightBarButtonItem;
}
- (void)onClickrighttButton:(id)sender
{
NSLog(@"clicked");
}
图片中也可以看到
还有一张清晰的iphone 6图片
看到按钮的边框为 2,甚至没有出现占位符。
【问题讨论】:
-
您是否尝试清理项目以及可能的派生数据?
-
你不应该持有弱引用。试试
@property (nonatomic) UIButton *rightButton; -
在我的脑海中,我认为你应该在视图控制器本身上设置它,而不是标签栏控制器。还是您的层次结构实际上是 Nav > Tab > Content?
-
我猜你还没有设置 iPhone 6 和 6+ 的启动屏幕。添加它并立即尝试。
-
我有 6 和 6+ 的启动屏幕
标签: ios objective-c navigationbar rightbarbuttonitem uitabview