委任

2016-06-30 13 views
1

私は次のセットアップを持っている:委任

StartViewControllerは、私はタスクがContainerViewControllerに行われた後StartViewControllerで隠された要素への道を見つけようとContainerViewController

が含まれているContainerViewを持っています。

私はこのような委任方法を使用しようとする。このため

:私はprepareForSegue

に行うことができますContainerViewControllerを提示した場合

StartViewController

class StartViewController: UIViewController, showBannerAdDelegate { 

    @IBOutlet weak var bannerView: UIView! 

    override func viewDidLoad() { 
     super.viewDidLoad() 
     bannerView.hidden = false 
    } 

    func bannerAdHidden(status: Bool) { 
     bannerView.hidden = status 
    } 

} 

ContainerViewController

protocol showBannerAdDelegate: class { 
    func bannerAdHidden(status: Bool) 
} 

class ContainerViewController: UIViewController { 

    weak var delegate: showBannerAdDelegate! = nil 

    @IBAction func buttonPressed(sender: UIButton) { 
     delegate.bannerAdHidden(true) 
    } 

} 

let destination = segue.destinationViewController as! ContainerViewController 
destination.delegate = self 

しかし、この場合には、両方のビューコントローラは常に存在しています。

は、私はそれを動作させるためにビューコントローラにどのようなコードを追加する必要がありますか?ビューコントローラの一つは、それが含むビューコントローラが最初にロードされたときに起動埋め込みセグエがロードされた容器のビュー内にある場合

は、

答えて

2

、ありがとうございました。 prepareForSegueメソッドがまだ呼び出されているので、説明したとおりにデリゲートを正確に設定できます。私はいつも埋め込みセグがちょっと奇妙だと思っていました(実際にはセグーではありませんが、それはもっと子ビューコントローラを読み込むようなものです)。

+0

ありがとうございます。 – Zoltan