如何有返回按钮才能返回到第一个 ViewController?

Posted

技术标签:

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

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

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

【问题讨论】:

你的初始 viewCont 必须嵌入 navigationController 然后创建与另一个 vc 的连接,在推送 segue 的情况下你将获得 inbuild 选项以返回,另请查看 ***.com/a/42672029/4003548。 当我这样做时,我将失去我的第二个导航控制器 可以通过navigationviewcontroller使用poptoroot。 【参考方案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")

【讨论】:

以上是关于如何有返回按钮才能返回到第一个 ViewController?的主要内容,如果未能解决你的问题,请参考以下文章

微信小程序 wx.redirectTo返回按钮处理

ios 我的应用程序如何返回到第一个屏幕?

返回到第一个循环

如何在颤动中拦截AppBar中的后退按钮

从 Activity 返回时如何获取最后一个 ListView 状态

如何打开一个新表单然后从第二个表单返回到第一个表单而不关闭并重新打开第一个表单