代码之家  ›  专栏  ›  技术社区  ›  Utku Dalmaz

从另一个导航控制器将viewcontroller弹出到另一个viewcontroller

  •  0
  • Utku Dalmaz  · 技术社区  · 6 年前

    NC/VC1-模式存在-NC2/VC2(嵌入)- VC3弹出到VC1

    我试图将当前视图控制器从另一个导航控制器弹出到第一个视图控制器。

    我找不到办法。有人知道如何实现吗?

    2 回复  |  直到 6 年前
        1
  •  1
  •   Junaid    6 年前

    enter image description here

    vc1类中的第一个声明此方法

    class VC1: UIViewController {
    
        override func viewDidLoad() {
            super.viewDidLoad()
    
            // Do any additional setup after loading the view.
        }
    
        @IBAction func unwindtoVC1(segue: UIStoryboardSegue) {
    
        }
    
    }
    

    然后查看图像以创建展开段

    之后在你的VC3课上

    class VC3: UIViewController {
    
        override func viewDidLoad() {
            super.viewDidLoad()
    
            // Do any additional setup after loading the view.
        }
    
    
        @IBAction func didCloseTap(_ sender: Any) {
            self.performSegue(withIdentifier: "segueToVC1", sender: nil)
    
        }
    
    }
    
        2
  •  0
  •   ppalancica    6 年前

    我们需要更多关于视图控制器层次结构和如何准确完成导航的详细信息。

    请注意,除非层次结构中的另一个视图控制器(您希望在弹出当前视图控制器后显示)不是当前的,否则将出现问题。

    我建议使用协调器对象(它不是视图控制器,继承自nsobject)。让它决定哪个视图控制器应该弹出,下一个显示什么。

    协调器需要对应用程序委托的窗口属性的引用,以便根据需要设置其rootviewcontroller属性。所有视图控制器还必须委托给协调器来通知它关闭/添加/保存事件等。

    观看此演示文稿 https://vimeo.com/144116310 请注意,这是一个比您在苹果文档中找到的更高级的模式。这个想法是视图控制器不应该呈现其他视图控制器或者知道其他视图控制器的存在。除非它是容器视图控制器,如uinavigationcontroller、uitabbarcontroller,否则这些或自定义的子类。