【发布时间】:2016-04-04 09:23:07
【问题描述】:
我在 swift 中有一个 ios 应用程序,我有一个带有容器的 UIViewController(我们称之为 parentController)。这个容器嵌入了另一个名为 embedController 的UIViewController。
embedController 包含一个将消息打印到控制台的方法。
如何从我的 parentController 调用此方法?
我尝试使用协议,我目前的代码如下:
class ParentController: UIViewController {
var handleEmbedController:HandleEmbedController?
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if (segue.identifier == "embedViewSegue"){
if let embed = segue.destinationViewController as? EmbedController {
embed.value1 = value1
}
}
@IBAction func sendMsgButtonAction(sender: AnyObject) {
handleEmbedController?.printMsg() //this so far does nothing
}
}
还有我的 embedController:
protocol HandleEmbedController: class {
func printMsg()
}
class EmbedController: UITableViewController, HandleEmbedController{
var value1 = ""
func printMsg(){
print("printing some embedded message")
}
}
如何从父控制器打印此消息?
【问题讨论】:
标签: ios swift uiviewcontroller protocols