我对Swift比较新。这是我的问题: 我有一个UIViewController,里面有一个容器。容器有自己的ContainerViewController。容器是应用程序的标题,其中有一个按钮。
我想根据按钮(在容器内)是否被按下,在UIViewController中设置Bool的值。
我不认为传递一个带有segue的“mainVC”会成功:没有必要制作一个segue,因为两个视图显示在同一个屏幕上。
我应该为视图及其容器提供相同的ViewControllerClass吗?
非常感谢你的时间
答案 0 :(得分:5)
有不同的解决方案:
ContainerViewController
parentViewController
(= UIViewController)canBecomeFirstResponder()
(子类)中实施UIViewController
以返回YES buttonPressed(sender:AnyObject)
(或其他)方法
UIApplication.sharedApplication().sendAction("buttonPressed:", to: nil, from:self)
这将允许方法“旅行”#34;响应者链直到找到实现buttonPressed()
方法的对象。如果要在其他视图控制器中重用标头视图,此解决方案非常有用。
使用委托模式。在容器视图控制器中创建委托属性+协议,并让父vc在prepareForSegue()方法中将其自身设置为委托,该方法触发embed-segue。这也得到了重复使用的印章。
如果您使用的是故事板,那么您也可以使用Unwind Segue