UITableViewController是否等于UITableViewDataSource,UITableViewDelegate

时间:2013-02-22 09:48:30

标签: ios objective-c

我们可以使用UITableViewDataSourceUITableViewDelegate完全替换UITableViewController,例如,这两个代码行之间是否存在差异?

@interface ShareViewController : UITableViewController
@interface ShareViewController : UIViewController<UITableViewDataSource, UITableViewDelegate>

5 个答案:

答案 0 :(得分:3)

这两行代码之间存在巨大差异。 此

@interface ShareViewController : UITableViewController

表示您的ShareViewController继承自UITableViewController,因此它提供了一个UITableView作为主视图。 此

@interface ShareViewController : UIViewController<UITableViewDataSource, UITableViewDelegate>

表示您的ShareViewController是经典的UIViewController(继承自UIViewController),只是实现管理表视图的协议。

答案 1 :(得分:1)

UITableViewController最重要的是UIView 控制器

它实现了UITableViewDataSourceUITableViewDelegate协议,并且有tableView属性/出口(这是他唯一的.view)。

UITableView是 UIView


要让UIViewController几乎完成UITableViewController为您所做的一切,您必须实施这两个协议,在UITableView内拖动UIViewController,创建一个它的出口并将UIViewController设置为delegatedataSource tableView

您只需点击StoryBoard for iOS6 +中的复选标记即可向UIRefreshControl UITableViewControllers添加tableView,您必须在{{1}上写更多行才能执行此操作在UITableView

答案 2 :(得分:0)

@interface ShareViewController : UITableViewController

以上行表示ShareViewController继承自UITableViewController

@interface ShareViewController : UIViewController<UITableViewDataSource, UITableViewDelegate>

以上行表示ShareViewController继承自UIViewController&amp;实现UITableViewDataSource, UITableViewDelegate代理

答案 3 :(得分:0)

如果您检查UITableViewController的引用,您将看到它符合UITableViewDataSourceUITableViewDelegate,但仅仅符合相同的协议并不会使类相等。 UITableViewController是一个适合与UITableView一起使用的类,其中UIViewController可以与任何UIView一起使用。

答案 4 :(得分:0)

UITableViewControllerUIViewController已经实施的UITableViewDelegate, UITableViewDataSource协议,因此当您使用它继承您的课程时,您无需再次在ViewController中实施这些协议。就像:

NS_CLASS_AVAILABLE_IOS(2_0) @interface UITableViewController : UIViewController <UITableViewDelegate, UITableViewDataSource>

为了更清楚,UITableViewDelegate, UITableViewDataSourceprotocols,而UITableViewControllerViewController