簡體   English   中英

UIViewController如何自動符合TableView協議?

[英]How is UIViewController automatically conforming to TableView protocols?

我的項目包含幾個管理表的視圖控制器。 這些控制器沒有明確地符合UITableViewDelegate或UITableViewDataSource,而且它們是UIViewController的子類而不是UITableViewController,但卻設法公開我從那些協議實現的表視圖方法,例如tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat 這些視圖控制器來自故事板,它可以做一些我不知道的幕后工作。 這個魔法是怎么發生的? 這些協議的隱含一致性來自何處?

您可以在Storyboard中選擇任何類作為UITableView委托。 故事板不檢查類是否真的確認某些協議。 所以你不會收到編譯時錯誤。 在運行時,UITableView也不會檢查它是否是委托實現協議 相反,UITableView使用respondsToSelector來檢查它的委托是否具有所需的方法 由於您的視圖控制器已經 - 一切正常。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM