【问题标题】:what is the correct way to be back to first view controller if not using navigation controller?如果不使用导航控制器,返回第一个视图控制器的正确方法是什么?
【发布时间】:2019-03-14 01:37:17
【问题描述】:

我无法使用导航控制器,我想从 YellowVC 回到 blueVC。如果使用导航控制器,我通常使用

self.navigationController?.popToRootViewController(animated: true)

但是如果我不使用导航控制器,我发现有两种方法可以从 blueVC 返回到 yellowVC。

  1. 使用展开转场
  2. 如下图使用现在模态

那么返回第一个视图控制器的最佳方法是什么?使用 unwind segue 还是使用现在的模态 segue?

【问题讨论】:

  • 看到这个寻求帮助:stackoverflow.com/questions/33520899/…
  • 使用展开转场
  • 如何将视图控制器从蓝色移到黄色。您是否使用现在模态从蓝色变为红色,然后从红色变为黄色?
  • 然后开始使用导航控制器——你不能做得更好 所有工作导航控制器所做/提供的工作(你甚至可能不知道这些工作会发生什么幕后)。

标签: ios segue uistoryboardsegue


【解决方案1】:

假设您要呈现所有视图,更好的方法是使用 unwind Segues。

【讨论】:

    【解决方案2】:

    我认为如果你使用关闭视图控制器会很容易。

    • 当第三个 VC 类的后退按钮时,您只需将任何 uniq 值传递给第二个视图控制器类。(任何字符串或任何整数)
    • 只需在视图中使用 if 条件检查该值是否加载了第二个 VC 类,然后如果其匹配则关闭当前 VC(第二个 VC)就足够了。

    3VC类

    @IBAction func back_clicked(_ sender: Any) {
    dismiss(animated: false, completion: nil)
        2_vcObject.String = "skip2" 
        }
    

    2Vc 类

    view did load()
    
     if string == "skip2"
    {
    dismiss(animated: false, completion: nil) 
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-04-16
      • 2023-03-24
      • 1970-01-01
      • 1970-01-01
      • 2013-04-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多