您知道如何隐藏UINavigationController中的“返回”按钮吗?另外,如何将其显示回来,但我想这与隐藏它非常相似...
就像iPhone上的邮件应用程序在查看电子邮件时点击“编辑”时所做的那样。
您知道如何隐藏UINavigationController中的“返回”按钮吗?另外,如何将其显示回来,但我想这与隐藏它非常相似...
就像iPhone上的邮件应用程序在查看电子邮件时点击“编辑”时所做的那样。
我刚刚找到了答案,在控制器中使用以下代码:
[self.navigationItem setHidesBackButton:YES animated:YES];
并恢复它:
[self.navigationItem setHidesBackButton:NO animated:YES];
--
[更新]
Swift 3.0:
self.navigationItem.setHidesBackButton(true, animated:true)
添加这段代码
[self.navigationItem setHidesBackButton:YES];
除了使用已推荐的方法去除返回按钮外,还要记住用户仍然可以在 iOS 7 及之后通过从左到右的滑动手势“弹出”到上一个屏幕。
要禁用它(在适当情况下),请实现以下内容(例如,在 viewDidLoad 中):
if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 7.0)
self.navigationController.interactivePopGestureRecognizer.enabled = NO;
为了澄清现有答案: hidesBackButton
属性是正确的答案,但很多答案都没有明确说明 self
是指什么。基本上,你应该在即将被推送(或刚刚被推送)到 UINavigationController
上的视图控制器中设置 self.navigationItem.hidesBackButton = YES
。
换句话说,假设我有一个名为 myNavController
的 UINavigationController
。我想在它上面放一个新视图,在这个过程中我不想再显示返回按钮。我可以像这样做:
UIViewController *newVC = [[UIViewController alloc] init];
//presumably would do some stuff here to set up the new view controller
newVC.navigationItem.hidesBackButton = YES;
[myNavController pushViewController:newVC animated:YES];
当代码完成后,由newVC
控制的视图应该显示出来,并且不应该可见返回按钮。要根据条件隐藏或显示“返回”按钮,您可以使用以下代码:
-(void)viewDidAppear:(BOOL)animated
{
if ([tempAry count]==0)
{
[self.navigationItem setHidesBackButton:YES animated:YES];
}
else
{
[self.navigationItem setHidesBackButton:NO animated:YES];
}
[super viewDidAppear:animated];
}
注意:在某些情况下,你需要将它放在viewDidAppear方法中而不是viewWillAppear方法中,例如当你将下一个类的数组更新到前一个类并在下一个类中检查条件时。
我已经使用了以下 Swift iOS
// hide back button
self.navigationItem.setHidesBackButton(true, animated: false)
// pgrm mark ----- ------
// hide the back button for this view controller
override func setEditing(editing: Bool, animated: Bool) {
super.setEditing(editing, animated: animated)
self.navigationItem.setHidesBackButton(editing, animated: animated)
}// end setEditing
因为某些原因,sethidesbackbutton对我无效。
我使用了以下方法 ->
self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:[[UIView alloc]initWithFrame:CGRectMake(0, 0, 20, 30)]] ;
对于简单问题,始终使用苹果文档,它们更加直接和轻量级 :)
以下是Swift 3.0的语法:
self.navigationItem.setHidesBackButton(true, animated:true)
Reference
在我的情况下,我对目前的答案存在一些问题:
因此,最终为我工作的解决方案是:
- (id)initWithCoder:(NSCoder *)aDecoder {
self = [super initWithCoder:aDecoder];
if (self) {
[self.navigationItem setHidesBackButton:YES animated:NO];
}
return self;
}
对于我来说,Zoran Simic提出的解决方案由于某种原因并没有起作用。
然而,以下代码确实起作用:
MyController* controller = [[MyController alloc] init];
NSArray* array = [[[NSArray alloc] initWithObjects:controller, nil] autorelease];
[self.navigationController setViewControllers:array animated:NO];
[controller release];
navigationItem
推入导航控制器之前,您必须调用setHidesBackButton:
。请注意先后顺序。 - codingFriend1viewWillAppear:animated
来隐藏它,viewWillDisappear:animated
来恢复它。 - Lukas