我们可以使用UITableViewDataSource,UITableViewDelegate完全替换UITableViewController,例如,这两个代码行之间有区别吗?
@interface ShareViewController : UITableViewController
@interface ShareViewController : UIViewController<UITableViewDataSource, UITableViewDelegate>
我们可以使用UITableViewDataSource,UITableViewDelegate完全替换UITableViewController,例如,这两个代码行之间有区别吗?
@interface ShareViewController : UITableViewController
@interface ShareViewController : UIViewController<UITableViewDataSource, UITableViewDelegate>
这两行代码之间有很大的不同。这个
@interface ShareViewController : UITableViewController
意味着您的 ShareViewController 继承自UITableViewController,因此它提供了例如一个UITableView作为主视图。这个
@interface ShareViewController : UIViewController<UITableViewDataSource, UITableViewDelegate>
意味着您的 ShareViewController 是一个经典的 UIViewController (继承自UIViewController),并简单地实现协议来管理表视图。
UITableViewController最重要的是一个 UIView Controller。
它实现UITableViewDataSource和UITableViewDelegate协议,并有一个tableView属性/出口(这是他唯一的.view)。
一个 UITableView 是一个UIView。
要让 aUIViewController为您做几乎所有事情UITableViewController,您必须实现这两个协议,将 a 拖到UITableView您的UIViewController中,为其创建一个出口并将您的设置UIViewController为delegate和dataSource您的tableView出口
您可以通过单击 StoryBoard for iOS6+ 中的复选标记来将 a 添加UIRefreshControl到 a ,您必须在 a内部编写更多行来执行此操作UITableViewControllers tableViewUITableViewUITableViewController
UITableViewController是一个UIViewController已经实现的UITableViewDelegate, UITableViewDataSource协议,因此当你用它继承你的类时,你不需要ViewController再次实现它们。就像是:
NS_CLASS_AVAILABLE_IOS(2_0) @interface UITableViewController : UIViewController <UITableViewDelegate, UITableViewDataSource>
为了更清楚,UITableViewDelegate, UITableViewDataSource是protocols,UITableViewController而是ViewController。
@interface ShareViewController : UITableViewController
上面的线意味着ShareViewController继承自UITableViewController
@interface ShareViewController : UIViewController<UITableViewDataSource, UITableViewDelegate>
上一行表示ShareViewController继承自UIViewController并实现了UITableViewDataSource, UITableViewDelegate代表
如果您检查UITableViewController的参考资料,您会发现它符合UITableViewDataSource但UITableViewDelegate仅仅符合相同的协议并不能使类相等。UITableViewController 是一个适合与UITableViews 一起使用的类,其中UIViewController可以与 any 一起使用UIView。