iPad用アプリを開発しています。このアプリではcontainerView
を追加してviews
を追加し、それらとやり取りします。Swiftでコンテナビューを使用する代理人
まず、私は、プロトコル作成:私は私の最初のビューコントローラ
import UIKit
class ViewController: UIViewController, DataViewDelegate {
@IBOutlet var container: UIView!
@IBOutlet var labelText: UILabel!
override func viewDidLoad() {
super.viewDidLoad()
}
func setTouch(touch: Bool) {
if touch == true {
labelText.text = "Touch!"
}
}
}
そして最後を作成し、その後
protocol DataViewDelegate {
func setTouch(touch: Bool)
}
を、私は、ビューを作成しましたこれはcontainerViewに埋め込まれます。
import UIKit
class ContainerViewController: UIViewController {
var dataViewDelegate: DataViewDelegate?
override func viewDidLoad() {
super.viewDidLoad()
}
@IBAction func touchMe(sender: AnyObject) {
dataViewDelegate?. setTouch(true)
}
}
しかし、いくつかの理由のために、何が最初のビューコントローラがsetTouch機能に何も受信しない、起こりませんでした。
私の質問はです。この場合、コンテナを使用して、2つのViewsController間で通信を行うにはどうすればよいですか?
: はその後parentViewControllerにこのようにfunc prepareForSegueを実装します。しかし、ベストプラクティス、特に「各View Controllerを島にする」セクションについては、appleのUIViewControllerプログラミングガイドhttps://developer.apple.com/library/ios/featuredarticles/ViewControllerPGforiPhoneOS/DesignTips.htmlを参照してください。 – beyowulf