代表団を使用することをおすすめします。
「ナビゲーションバー」のボタンを押した後、コントローラに2番目のコンテナビューの内容を変更するように指示します。
UPDATE:あなたのナビゲーションで
プロトコルを追加:プロトコルに準拠し、委任を実装し、あなたのメインコントローラ内部
protocol NavigationDelegation: class {
func userDidPressSomeButton(sender: NavigationViewController)
}
class NavigationViewController: UIViewController {
...
weak var navDelegate: NavigationDelegation?
@IBAction func someButton(_ sender: Any) {
// some additional stuff
...
// send delegation
navDelegate?.userDidPressSomeButton(sender: self)
}
...
}
を:
class YourMainViewController: UIViewController, NavigationDelegation {
...
var firstEmbeddedViewController: NavigationViewController?
var secondEmbeddedViewController: SomeOtherViewController?
// Accessing your embedded controllers
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if let controller = segue.destination as? NavigationViewController {
embeddedViewController = controller
// Setting your main controller to delegate to
embeddedViewController!.navDelegate = self
}
else if let controller = segue.destination as? SomeOtherViewController {
secondEmbeddedViewController = controller
}
}
// Implement the required protocol function
func userDidPressSomeButton(sender: NavigationViewController) {
// You can now talk to your second embedded view, e.g.,
secondEmbeddedViewController.someVariable = someValue
secondEmbeddedViewController.someFunction()
// You can also use the sender variable to access your navigation properties, e.g.,
// let someText = sender.buttonOutlet.textLabel?.text
}
...
}
あなたは、私が参照できる例はありますか? – ethanfox27
私は自分の答えを更新しました。ここでは、委任の仕組みに関する簡単なアイデアを提供するためのyoutubeビデオリンクもあります:[link](https://www.youtube.com/watch?v=D-xXRSCLNFQ)約6:40) –
メインコントローラでは、両方のコンテナビューで紫色のコンテナビューまたはVCを意味しますか? – ethanfox27