我有两个控制器UINavigationController
(UIViewController
(root)和UITableViewController
)。我需要点击UIViewController
处的操作并在移至UITableViewController
TableViewController.swift
func printString() {
print("hello world")
}
ViewController.swift
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if segue.identifier == "sendData" {
let navController = segue.destinationViewController as! UINavigationController
let controller = navController.topViewController as! TableViewController
controller.printString()
}
}
点击后我看到了
无法将'myProjectName.TableViewController'(0x5a068)类型的值转换为'UINavigationController'(0x17ffed4)。
为什么会这样?
答案 0 :(得分:0)
仅仅是:
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if segue.identifier == "sendData",
let controller = segue.destinationViewController as? TableViewController {
controller.printString()
}
}
}
看起来destinationViewController是TableViewController。