当用户按下内部按钮时,如何使用嵌入式uiViewController隐藏/关闭容器?

时间:2016-03-09 14:46:39

标签: ios swift uiviewcontroller

我有一个名为Outer的UIViewController非常简单的应用。我在该控制器上放置了一个容器,在这个容器内部我嵌入了另一个名为Inner的UIViewController

默认情况下,Inner是隐藏的,而Outer有一个按钮 - 当用户按下它时 - 将屏幕内部(通过将其属性hidden更改为false)。

由于我将一些数据从外部传递到内部,因此到目前为止这是我的代码:

Outer.swift:

class Outer: UIViewController, ContainerToMaster {

    var containerViewController: Inner?

    override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
        if segue.identifier == "requestDetailsSegue" {
            containerViewController = segue.destinationViewController as? Inner
            containerViewController!.containerToMaster = self
        }
    }

    @IBAction func openInnerButtonAction(sender: AnyObject) {
        containerViewController?.changeLabel(description)
        inner.hidden = false
    }
}      

Inner.swift:

protocol ContainerToMaster {
    func changeLabel(text:String)
}

class Inner: UIViewController {

    @IBOutlet weak var eventDescr: UILabel!

    var containerToMaster:ContainerToMaster?

    func changeLabel(description: String) {
        eventDescr.text = description
    }

}

现在我想在内部面板上添加一个按钮,在用户按下它后将其关闭。最好的方法是什么?

1 个答案:

答案 0 :(得分:1)

unwind segue(又名退出segue)可用于导航推送,模态或弹出窗口。点击here了解更多信息。