【发布时间】:2010-12-23 00:35:13
【问题描述】:
(已编辑:在底部添加了更多信息)
首先,我浏览了类似的帖子并尝试了他们的答案,但没有运气:(我有一个自定义导航栏(只是一个自定义背景图像),我正在尝试添加一个自定义后退按钮。
// custom back button.
UIButton *backBtn = [UIButton buttonWithType:UIButtonTypeCustom];
UIImage *backImg = [UIImage imageNamed:@"btn_back.png"];
backBtn.titleLabel.text = @"";
[backBtn setBackgroundImage:backImg forState:UIControlStateNormal];
[backBtn addTarget:self action:@selector(backPressed) forControlEvents:UIControlEventTouchUpInside];
backBtn.frame = CGRectMake(0, 0, 54, 33);
self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:backBtn];
self.navigationItem.leftBarButtonItem.title = @"";
上面的代码是用来添加按钮的,但它没有显示在导航栏上。我仍然可以单击它应该出现的区域,它确实让我回到以前的视图?!删除上面的代码会显示标准的后退按钮。
有什么想法吗?提前致谢!
(编辑)
大家好,
我尝试了您的所有建议,但仍然没有运气:(我可能应该在前面提到,我有一个使用以下代码的自定义导航栏图像。这可能会影响我的自定义后退按钮图像的显示。
此代码根据我设置的参数显示自定义图像。再次感谢您的进一步帮助!
// custom navigation bar image
@implementation UINavigationController (CustomImage)
// set the background image for the nav bar.
- (void) setCustomNavBar:(NSInteger)screen {
UIImage *navBarImg;
switch (screen) {
case kCreateHuntScreenIdentifier:
navBarImg = [UIImage imageNamed:@"title_create-hunt.png"];
break;
case kCreateLocationsScreenIdentifier:
navBarImg = [UIImage imageNamed:@"title_create-location.png"];
break;
case kListNewLocationsScreenIdentifier:
navBarImg = [UIImage imageNamed:@"title_choose-location.png"];
break;
default:
break;
}
UIImageView *imgView = [[UIImageView alloc] initWithImage:navBarImg];
[[[self.navigationBar subviews] objectAtIndex:0] removeFromSuperview];
[self.navigationBar addSubview:imgView];
[imgView release];
}
@end
【问题讨论】:
-
好的,如果我不为导航栏显示自定义图像,自定义后退按钮会显示!会尝试看看我是否让两者一起显示,如果我弄清楚发生了什么,我会在这里发布更新!
标签: iphone uibutton uinavigationbar