繁体   English   中英

如何获得子视图控制器的父项?

[英]How to get parent of child view controller?

我有一个带分段控制的视图controllerA,并且在不同的段选择上在controllerA中添加了两个视图控制器(B&C)视图。我在controllerB和controllerC上各有一个按钮。单击每个controllerB和controllerC时,我是去控制器D。

我怎么知道我来自哪个控制器?

我已经在下面尝试过代码,但是我认为由于添加到controllerA的控制器(B&C)的视图,它给了我零。

guard let parent = self.parent else {return}

在这种情况下如何获得父母?

我曾经使用的稍微不同的解决方案:

  • 声明与发件人A,B,C等的枚举。

     enum Sender { case A case B case C } 
  • 在D中放置一个名为sender的变量。

      var sender : Sender! 
  • 在初始化VC集时,它是各自的发送者。 如果您使用segue,请准备segue以设置值。

     override func prepare(for segue: UIStoryboardSegue, sender: Any?) { if segue.identifier == "D" { let vc = segue.destination as! D vc.sender = B or C //As required } } 

然后,您可以使用发件人的值根据发件人执行任何操作。 这里的好处是,如果您继续导航,则始终可以将发件人值传播到下一个ViewController。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM