【问题标题】:Override Back Button In Navigation Controller覆盖导航控制器中的后退按钮
【发布时间】:2017-01-06 11:25:07
【问题描述】:

我有这些流程的故事板。我正在使用SWRevealViewController 导航到每个导航控制器。

- Navigation Controller 1 --> View Controller Initial (Home) --> View Controller Target
- Navigation Controller 2 --> View Controller X --> View Controller Y --> View Controller Target
- Navigation Controller 3 --> View Controller M --> View Controller Target

从每个流程的View Controller Target,我想覆盖它的后退按钮,以便它可以返回到View Controller Initial (Home) 并在内存中释放它的对象。

有没有办法做到这一点?任何帮助,将不胜感激。谢谢。

【问题讨论】:

  • 我想覆盖它的后退按钮,这样它就可以回到 View Controller Initial,U 在这里是指 navigationC 的 rootController。?
  • 是的,我想在每个流程上从 View Controller Target 转到 Navigation Controller 1。

标签: ios swift uinavigationcontroller swrevealviewcontroller


【解决方案1】:

对于 View Controller Target 中的 backButton 操作,请使用:

[self.navigationController popToRootViewControllerAnimated:YES];

【讨论】:

    【解决方案2】:

    首先,您需要将您的后退按钮替换为带有它的选择器的自定义 Back BarButton。

    self.navigationItem.leftBarButtonItem = UIBarButtonItem(title: "Back", style: .Done, target: self, action: #selector(self.backToInitial(_:)))
    
    func backToInitial(sender: AnyObject) {
         self.navigationController?.popToRootViewControllerAnimated(true)
    }
    

    如果你正在运行swift 3.0,那么selector 的语法是这样的。

    self.navigationItem.leftBarButtonItem = UIBarButtonItem(title: "Back", style: .Done, target: self, action: #selector(self.backToInitial(sender:)))
    

    编辑:对于SWRevealViewController,试试这样。

    let revealController = self.revealViewController;
    let vc = self.storyboard?.instantiateViewControllerWithIdentifier("InitialViewController") as! InitialViewController
    let navigationController = UINavigationController(rootViewController: vc)
    revealController.pushFrontViewController(navigationController, animated:true)
    

    【讨论】:

    • 您好,感谢您回答我的问题。它有效,但我想我忘了提到每个流程都有不同的导航控制器。请看我的更新。非常感谢。
    • 已编辑 @NDoc。谢谢。
    • 有效!谢谢!但是它的对象在堆栈内存上可以吗?
    • 呃,它没有覆盖它的后退按钮,而是在左右两侧创建新的栏按钮项目?没关系,但仍需要努力将其按钮创建为看起来像“后退按钮”。
    • 欢迎朋友,编码快乐 :) 您可以使用自定义 barbutton 项创建。
    猜你喜欢
    • 1970-01-01
    • 2012-01-01
    • 2011-11-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-17
    • 1970-01-01
    • 2023-03-23
    相关资源
    最近更新 更多