

Swiftのプログラム質問です。  
子ViewControllerの中のViewの中にUIButtonあります。そのボタンを押すと親ViewControllerのパラメータを変更したいと思っています。

以下のように子ViewControllerを追加しています。

[code]

    // 子ViweController(content)を追加
    self.addChildViewController(content)
    // 子ViewControllerのviewを自身のview階層に追加
    self.view.addSubview(content.view)
    // 子ViewControllerに追加が終わったことを通知する
    content.didMoveToParentViewController(self)
    
[/code]

子Viewの中にあるButtonを押すと、親ViewControllerのパラメータ(例えばvar
test:Integer)を変更したいと思っています。Segueのようにパラメータを受け渡せればと考えていますが、どのようにするのかわかりません。

ご存知の方、ご教示お願いします。


CC BY-SA 3.0
2015-09-21T12:13:29.720
16817
2016-01-19T15:02:48.933
2015-09-21T12:41:50.063
5337
8593
question
swift uikit
子ViewControllerから親ViewControllerのパラメータを変更する方法


単純な方法としては、`parentViewController`で親ViewControllerを取得するものがあります。

[code]

    func click(sender :UIButton) {
        if let vc :ParentViewController = self.parentViewController as? ParentViewController {
            vc.test = "hogehoge"
        }
    }
    
[/code]

Optional
Binding構文で`as?`でキャストして型チェックが行えますので、インスタンス変数の可視性がinternal以上であれば、上記の記述で安全に受け渡しができると思います。


CC BY-SA 3.0
2015-09-21T12:48:22.080
16820
2015-09-21T12:48:22.080
5337
16817
answer