【问题标题】:How to have back button in order to go back to First ViewController?如何有返回按钮才能返回到第一个 ViewController?
【发布时间】:2017-03-17 06:25:40
【问题描述】:

我想在导航控制器中返回按钮,以便回到我以前的viewcontroller。您可以查看下面的图像以清楚地说明。

请给我一些想法。我花了很多钱却做不到。

【问题讨论】:

  • 你的初始 viewCont 必须嵌入 navigationController 然后创建与另一个 vc 的连接,在推送 segue 的情况下你将获得 inbuild 选项以返回,另请查看 stackoverflow.com/a/42672029/4003548。
  • 当我这样做时,我将失去我的第二个导航控制器
  • 可以通过navigationviewcontroller使用poptoroot。

标签: ios swift xcode uistoryboardsegue


【解决方案1】:

这样做:

将导航控制器添加到您的主页

结果

【讨论】:

  • 在我的第二页,它也有导航控制器。如果我这样做,我将失去我的第二个导航控制器。
  • 不,它不会丢失。相反,导航工作得很好。我会上传另一张图片来澄清一下。
  • 好棒,大哥怎么实现?
  • 我已经在图片中展示了它。仔细看第一张图。如果你得到你的答案,请接受这个。谢谢你。如果有任何问题,那么很乐意提供帮助。 :)
【解决方案2】:

您可以创建自定义后退按钮,点击后您必须输入此代码

@IBAction func customBack(_ sender: Any) {
   _ = self.navigationController?.popToRootViewController(animated: true)
}

【讨论】:

    【解决方案3】:

    转到您的故事板并点击导航控制器并选择

    'show navigation bar'
    

    它将显示您的导航栏。

    但是,如果您想制作自定义按钮,只需从情节提要中获取一个按钮并将此代码添加到其操作中。

    _ = navigationController?.popViewControllerAnimated(true)
    

    【讨论】:

      【解决方案4】:

      您需要将 UIbutton 或 UIbarButtonItem 添加到导航栏。然后您需要将按钮绑定到视图控制器。按照代码..

      @IBAction func backPressed(_ sender: Any) {
      
          self.dismiss(animated: true, completion: nil)
      
      }
      

      导航栏消失的解决方案。添加此代码..

      override func viewDidAppear(_ animated: Bool) {
      
              self.navigationController?.setNavigationBarHidden(false, animated: false)
      
      }
      

      【讨论】:

        【解决方案5】:

        故事板中最快的方式。

        按住 CTRL 键。然后点击带有高棉喜剧标题的按钮 并将鼠标拖动到显示的目标 ViewController 关于高棉喜剧的细节。然后释放 CTRL 和鼠标 就是这样。

        【讨论】:

          【解决方案6】:

          在 main.storyboard 上添加导航控制器 转到编辑器-> 嵌入-> 导航控制器

          这会为您生成返回按钮

          【讨论】:

            【解决方案7】:

            我更喜欢你创建一个父类,你将在其中创建返回按钮,这样你就可以重用这段代码

            1。创建一个父类

            class ParentClass: UIViewController {
            
            func addBackBtnWithImageName(string:String)-> Void
                {
            let button = UIButton.init(type: .custom)
             button.setImage(UIImage.init(named: string), for: UIControlState.normal)
             button.addTarget(self, action:#selector(backbtnClick), for: UIControlEvents.touchUpInside)
                    button.frame = CGRect.init(x: 0, y: 0, width: 30, height: 30)
                    let barButton = UIBarButtonItem.init(customView: button)
                    self.navigationItem.leftBarButtonItem = barButton
              }
            
             func backbtnClick()  {
                    _ = navigationController?.popViewController(animated: true)
                }
            
            }
            

            2。您要在其中添加返回按钮的班级

            class YourClass: ParentClass /*inheriting from parent class*/ {
              override func viewDidLoad() {
                    super.viewDidLoad()
                        self.addBackBtnWithImageName(string: "Back")
                }
            }
            

            在你想要添加返回按钮的任何类中,只需从父类继承并在 viewdidload 中添加这一行:

            self.addBackBtnWithImageName(string: "Back")
            

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多