导航后退按钮不显示,如何将后退按钮添加到UINavigationItem
我通过库添加UINavigationBar来查看。我还将UINavigationItem添加到此导航栏中。导航后退按钮不显示,如何将后退按钮添加到UINavigationItem
在viewController.m中,我添加了下面的代码,但后退按钮不显示。
self.navigationItem.title = @"List";
self.navigationItem.backBarButtonItem.title = @"Back";
self.navigationItem.backBarButtonItem
将示出的有推只有一个又一个视图到导航堆栈,由self.navigationController
控制,如果显示导航栏上没有左键。
从苹果文档:
当此项目是导航的背面项棒当其下面的下一个项目的顶部项目 - 它可以被表示为导航栏上的后退按钮。使用此属性来指定后退按钮。您设定的背面按钮项目的目标和动作应为零。默认值是显示导航项目标题的栏按钮项目。
谢谢你的info.Currently我不使用推送的视图导航堆栈。我使用addSubView方法从主视图中调用此视图。所以如何将bar按钮项添加到我的navigationItem或如何启用back bar按钮项。 –
您应该创建自定义按钮并将其设置为'self.navigationItem.leftBarButtonItem'。查看答案@ 516 – Nekto
我试了一下,但还是没有显示。 –
试试这个代码,
**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
}
试试这个代码,可能是它的帮助下到U
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];
}
这是有点老了,但如果有人在寻找一个答案......
后退按钮会自动显示,但当前视图(而不是一个被推送)需要有一个标题。例如:
- (void)viewDidLoad
{
self.title = @"Home";
[super viewDidLoad];
}
然后,当你推的视图到图堆栈
[self.navigationController pushViewController:aViewController animated:YES];
返回按钮显示出来。无需混淆UINavigationItem或UINavigationBar。使用这些来自定义导航栏。看一下名为NavBar的示例项目,它是xcode的一部分。
试试这个:
self.navigationItem.leftItemsSupplementBackButton = YES;
如果您定制具有UIBarButtonItems您的导航控制器框架默认情况下删除后退按钮,因为它假设您自定义导航栏。使用该行再次添加后退按钮。
你试过'self.navigationItem.hidesBackButton = NO'吗? – EmptyStack
只是后退按钮没有显示或整个导航栏? – HeikoG
我只是有这个问题,这解决了它对我来说:http://stackoverflow.com/questions/2485671/uinavigationcontroller-back-button-not-visible-but-works – banDedo