无法将'UIViewController'类型的值转换为强制类型'TableView'

时间:2016-03-26 01:52:14

标签: swift uiviewcontroller

我在强制

中收到错误Cannot convert value of type 'UIViewController' to type 'TableView'
 override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {

    let DestViewController = segue.destinationViewController  as TableView  //Error 

    DestViewController.label.text = TEXT.text  
}

1 个答案:

答案 0 :(得分:2)

.destinationViewController返回一个UIViewController,而不是UIView。

抛出此错误是因为当最接近的是UITableView Controller 时,您实际上是在尝试将UIViewController向下转换为UITableView。后者是UIViewController的子类型,而前者是UIView的子类型。因此,您不能将UIViewController转发到UITableView,而是转发到UITableViewController。

如果您希望DestViewController成为tableView(考虑重命名为destTable),则必须说:

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {

    let destTable = (segue.destinationViewController as UITableViewController).tableView

    destTable.label.text = TEXT.text  //suggestion: change `TEXT` to just `text` or `txt`, etc.; just not all uppercase

}

希望这有帮助!