我通过库添加UINavigationBar来查看。我还将UINavigationItem添加到此NavigationBar。
在viewController.m中,我添加了以下代码,但后退按钮未显示。
self.navigationItem.title = @"List";
self.navigationItem.backBarButtonItem.title = @"Back";
答案 0 :(得分:10)
试试这个:
self.navigationItem.leftItemsSupplementBackButton = YES;
如果使用UIBarButtonItems自定义导航控制器,框架默认会删除后退按钮,因为它假定您正在自定义导航栏。使用该行再次添加后退按钮。
答案 1 :(得分:3)
self.navigationItem.backBarButtonItem
控制后,如果导航栏上没有显示左侧按钮), self.navigationController
才会显示。
来自Apple文档:
当此项目是导航栏的后退项目时 - 当它是顶部项目下方的下一个项目时 - 它可以表示为导航栏上的后退按钮。使用此属性指定后退按钮。您设置的后栏按钮项目的目标和操作应为零。默认值是显示导航项标题的条形按钮项。
答案 2 :(得分:2)
试试这段代码,
**To hide your default back button use this,**
self.navigationItem.hidesBackButton = YES;
UIImage* image = [UIImage imageNamed:@"back.png"];
CGRect frame = CGRectMake(0, 0, image.size.width, image.size.height);
UIButton* backbtn = [[UIButton alloc] initWithFrame:frame];
[backbtn setBackgroundImage:image forState:UIControlStateNormal];
[backbtn setShowsTouchWhenHighlighted:YES];
[backbtn addTarget:self action:@selector(goBack) forControlEvents:UIControlEventTouchUpInside];
UIBarButtonItem* backButtonItem = [[UIBarButtonItem alloc] initWithCustomView:backbtn];
[self.navigationItem setLeftBarButtonItem:backButtonItem];
[backButtonItem release];
[backbtn release];
后退按钮的操作事件:
-(IBAction)goBack{
//ur code here
}
答案 3 :(得分:2)
试试这段代码可能对你有帮助
UIButton *moreButton1 = [UIButton buttonWithType:UIButtonTypeCustom];
[moreButton1 setImage:[UIImage imageNamed:@"left_arrow.png"] forState:UIControlStateNormal];
//[moreButton setImage:[UIImage imageNamed:@"Button_OtherInfo_Active.png"] forState:UIControlStateHighlighted];
[moreButton1 addTarget:self action:@selector(backClick) forControlEvents:UIControlEventTouchUpInside];
[moreButton1 setFrame:CGRectMake(0, 0, 50,30)];
self.navigationItem.leftBarButtonItem=[[UIBarButtonItem alloc] initWithCustomView:moreButton1];
将此代码放在viewDidLoad
-(void)backClick
{
[self.navigationController popViewControllerAnimated:YES];
}
答案 4 :(得分:0)
这有点旧,但万一有人在寻找答案......
后退按钮会自动显示,但当前视图(不是正在推送的视图)需要有标题。例如:
- (void)viewDidLoad
{
self.title = @"Home";
[super viewDidLoad];
}
然后,当您使用
将视图推送到视图堆栈时[self.navigationController pushViewController:aViewController animated:YES];
显示后退按钮。无需弄乱UINavigationItem或UINavigationBar。使用这些来自定义导航栏。看一下名为NavBar的示例项目,它是xcode的一部分。