2016-10-18 8 views
0

ナビゲーションバーを持つViewControllerにコンテナを埋め込みました。 ContainerViewには、いくつかのテキストフィールドを持つ別のViewControllerが含まれています。ViewContainerのViewControllerのバーボタンアクション

ContainerViewを最初に表示すると、テキストフィールドが無効になります。

私がしたいのは、テキストフィールドを有効にするナビゲーションバーに編集ボタンを追加することです。

基本的に、ビューコントローラーのバーボタンアイテムは、コンテナーに表示された別のビューコントローラーでアクションを持つことができますか?

あなたがバーボタンがのViewControllerになりますちょっとしたトリック

を行うことができますが、我々は、私がすることを行うには最初のViewController

に変数にContainerViewのコンテンツを格納することができ、この場合

答えて

1

あなたはここでそれに

を機能を記述しますので、ContainerViewの内容は、カスタムクラスを持っていることを確認することをお勧めすることはContainerView

class ViewController: UIViewController{ 
    weak var containter: ContainerViewController! 

    @IBAction func menuAction(_ sender: UIBarButtonItem) { 
     //do what you want containter.doAction() 
    } 

    override func prepare(for segue: UIStoryboardSegue, sender: Any?){ 
     if let vc = segue.destination as? ContainerViewController { 
     self.containter = vc 
     } 
    } 
} 
のコンテンツをキャッチする方法についての例です。
+0

ありがとうゾンビ、私はちょうどあなたが投稿したときにこれを行う別の方法を考え出した。しかし、私はあなたのやり方がよかったです。 – LateNate

0

常にそうです。私はすぐに私がそれを把握するように尋ねるように、何時間も答えを探していました。

私はそれを行う最良の方法はわかりませんが、編集ボタンで編集ブールコントローラを作成しました。次に、使用:

var child = self.childViewControllers[0] 
    child.viewWillAppear(false) 

これはデータをリロードし、編集モードであった場合はテキストフィールドを有効にしました。正常に動作します!

関連する問題