gpt4 book ai didi

ios - 如何从嵌入在该 Controller 容器中的 uiviewcontroller 调用存储在父 uiviewcontroller 中的方法?

转载 作者:行者123 更新时间:2023-11-29 01:08:36 26 4
gpt4 key购买 nike

我有一个 UIViewController - 我们称它为 parentViewController - 它包含一个容器。该容器中嵌入了 embeddedViewController。现在,我的 parentViewController 包含一个将某些内容打印到控制台的方法:

func printSomeData(){
print("some data")
}

embeddedViewController 有一个分配给它的 Action 的按钮:

@IBAction func printSomething(sender: AnyObject) {

有没有一种方法可以在 Swift 中从 printSomething 调用方法 printSomeData

最佳答案

有几种方法,例如通过实现委托(delegate)或通过发布 NSNotification。在这里,我展示了示例委托(delegate)模式。这是与您自己的 Controller 完全相同的场景,但您可以从中获得一些概念,如果您实现了这一点,希望这将实现您的目标。

    class ParentController:UIViewController,printing {

override func viewDidLoad() {
//
}

func presentEmbadedController(){

let embadedVC = EmbadedController()
embadedVC.delegate = self

}

func printSomeData() {
print("some date")
}

}

协议(protocol)是这样的

protocol printing{
func printSomeData()
}

然后像这样的 EmbadedController

 class EmbadedController:UIViewController {

var delegate: printing?

override func viewDidLoad() {
//
}

@IBAction func printSomething(sender: AnyObject) {

if let _ = delegate{
delegate?.printSomeData()
}

}

}

关于ios - 如何从嵌入在该 Controller 容器中的 uiviewcontroller 调用存储在父 uiviewcontroller 中的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36039998/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com