Hug*_*ugo 4 delegates uicontainerview swift
提前抱歉,我无法解释自己.我对编程很陌生,代表团的主题仍然没有找到我.我曾经有过一次很好的帮助,但现在我试图在不同的情况下使用代表,我无法做到这一点.我拼凑了一些不起作用的代码,无论我搜索多少,我找不到修复方法.
我在容器视图中有一个视图控制器(MainController)和嵌入式视图控制器(EmbeddedController).我试图在嵌入式控制器中有一个按钮来操纵容器视图(containerView).
EmbeddedController:
protocol ControllerDelegate {
func hideContainerView()
}
class EmbeddedController: UIViewController {
var delegate: VControllerDelegate?
@IBAction func button(sender: AnyObject) {
delegate?.hideContainerView()
}
}
Run Code Online (Sandbox Code Playgroud)
MainController:
class MainController: UIViewController, ControllerDelegate {
@IBOutlet var containerView: UIView!
func hideContainerView() {
containerView.hidden = true
}
override func viewDidLoad() {
super.viewDidLoad()
var vc = EmbeddedController()
vc.delegate = self
}
}
Run Code Online (Sandbox Code Playgroud)
有谁知道我做错了什么?为什么这不起作用?
我最终做的是将它添加到MainController:
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if (segue.identifier == "mySegue") {
let vc = segue.destinationViewController as! EmbeddedController
vc.delegate = self
}
}
Run Code Online (Sandbox Code Playgroud)
在故事板中,我选择了从MainController到EmbeddedController的segue,并将标识符设置为"mySegue".
如果没有上面的代码,代表将继续返回零.我一开始并没有考虑这个解决方案,因为我认为segues仅用于在视图控制器之间进行转换,在我看来,我没有看到嵌入式控制器是转换.也许比我更知识渊博的人(此时几乎就是这里的任何人)可以解释这一切是如何融合在一起的.
在任何情况下,这就是我解决我的问题的方式,希望其他人也可以从中受益:)
| 归档时间: |
|
| 查看次数: |
4916 次 |
| 最近记录: |