根视图控制器上显示的后退按钮
Posted
技术标签:
【中文标题】根视图控制器上显示的后退按钮【英文标题】:Back button showing on root view controller 【发布时间】:2016-10-26 13:34:54 【问题描述】:在我的应用程序中,我有一个导航控制器。除了我在根视图中不断收到一个不需要的后退按钮之外,一切似乎都运行良好。例如
这是在不选择任何选项的情况下的显示方式(必须始终如此)
这是我选择一个选项并返回后的样子
我怎样才能摆脱后退按钮(仅在下面显示的根视图控制器上)?
【问题讨论】:
纯故事板转场(展示) 您似乎没有在选项屏幕中使用 popViewController,但您再次推送到此根 viewController。我想您的导航堆栈实际上是:rootviewController -> Collection/pull -> rootViewController(另一个实例)。 developer.apple.com/library/content/referencelibrary/… 看看这个。 检查我更新的答案。谢谢 您的导航层次结构中的某些东西严重混乱,您能否发布一些关于您的例如故事板,也许? 【参考方案1】:您正在从其他控制器推送您的 RootController,这就是您获得此后退按钮的原因。
有两种方法可以删除此按钮。当您返回 RootView 时始终 POP 或隐藏 RootView 上的后退按钮。
要隐藏后退按钮,请使用以下代码:
self.navigationController.navigationItem.hidesBackButton = true;
弹出:
[self.navigationController popViewControllerAnimated:true];// If you have pushed from RootView controller
[self.navigationController popToViewController:YourRootViewController animated:true]; // To travel back to RootView controller from any Controller
希望对你有所帮助;
【讨论】:
【参考方案2】:只需在特定视图控制器中隐藏您的后退按钮(在您的情况下为您的根视图控制器)。将此代码添加到您的 viewDidLoad()
方法中:
let backButton = UIBarButtonItem(title: "", style: .plain, target: navigationController, action: nil)
navigationItem.leftBarButtonItem = backButton
【讨论】:
不客气,前几天也遇到了同样的问题。如果您可以将此答案标记为正确,它将帮助其他人节省时间。谢谢 有空会做 看起来像个黑客 您是否测试过按到空白处?有什么事吗? 是的,测试过,没有发生任何事情@Hoa【参考方案3】:试试这个代码。
override func viewDidLoad()
super.viewDidLoad()
self.navigationItem.setHidesBackButton(true, animated:true)
要返回主 VC 或根 VC:
func backToMain()
// If you want to go back to the previous view controller
navigationController?.popViewControllerAnimated(true)
//If you want to go back to the root view controller
navigationController?.popToRootViewControllerAnimated(true)
【讨论】:
【参考方案4】:你这行代码,
override func viewWillAppear(animated: Bool)
self.navigationController?.navigationBarHidden = true
【讨论】:
以上是关于根视图控制器上显示的后退按钮的主要内容,如果未能解决你的问题,请参考以下文章