たとえばUITableViewDataSource
、UITableViewDelegate
これらUITableViewController
2 つのコード行に違いはありますか?
@interface ShareViewController : UITableViewController
@interface ShareViewController : UIViewController<UITableViewDataSource, UITableViewDelegate>
たとえばUITableViewDataSource
、UITableViewDelegate
これらUITableViewController
2 つのコード行に違いはありますか?
@interface ShareViewController : UITableViewController
@interface ShareViewController : UIViewController<UITableViewDataSource, UITableViewDelegate>
この 2 行のコードには大きな違いがあります。これ
@interface ShareViewController : UITableViewController
は、ShareViewController が から継承することを意味するUITableViewController
ため、たとえばUITableView
メイン ビューとして提供されます。これ
@interface ShareViewController : UIViewController<UITableViewDataSource, UITableViewDelegate>
は、ShareViewController が従来の UIViewController (から継承UIViewController
) であり、テーブル ビューを管理するためのプロトコルを実装するだけであることを意味します。
UITableViewController最も重要なのは UIView Controllerです。
プロトコルを実装UITableViewDataSource
し、プロパティ/アウトレット (彼の唯一の .view) を備えています。UITableViewDelegate
tableView
UITableView はUIViewです。
に がUIViewController
行うほぼすべてのことを実行させるには、2 つのプロトコルをUITableViewController
実装する必要がありUITableView
ます。UIViewController
UIViewController
delegate
dataSource
tableView
iOS6+ の StoryBoard でチェックマークをクリックするだけでaUIRefreshControl
に a を追加できます。UITableViewControllers
tableView
UITableView
UITableViewController
UITableViewControllerの参照を確認するUITableViewDataSource
と、それが準拠していることがわかりますがUITableViewDelegate
、単に同じプロトコルに準拠しているだけではクラスが等しくなりません。UITableViewController は、 any で使用できるUITableView
s での使用に適したクラスです。UIViewController
UIView
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