3

たとえばUITableViewDataSourceUITableViewDelegateこれらUITableViewController2 つのコード行に違いはありますか?

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

5 に答える 5

3

この 2 行のコードには大きな違いがあります。これ

@interface ShareViewController : UITableViewController

は、ShareViewController が から継承することを意味するUITableViewControllerため、たとえばUITableViewメイン ビューとして提供されます。これ

@interface ShareViewController : UIViewController<UITableViewDataSource, UITableViewDelegate>

は、ShareViewController が従来の UIViewController (から継承UIViewController) であり、テーブル ビューを管理するためのプロトコルを実装するだけであることを意味します。

于 2013-02-22T09:53:44.937 に答える
1

UITableViewController最も重要なのは UIView Controllerです。

プロトコルを実装UITableViewDataSourceし、プロパティ/アウトレット (彼の唯一の .view) を備えています。UITableViewDelegatetableView

UITableView はUIViewです。


に がUIViewController行うほぼすべてのことを実行させるには、2 つのプロトコルをUITableViewController実装する必要がありUITableViewます。UIViewControllerUIViewControllerdelegatedataSourcetableView

iOS6+ の StoryBoard でチェックマークをクリックするだけでaUIRefreshControlに a を追加できます。UITableViewControllers tableViewUITableViewUITableViewController

于 2013-02-22T10:04:50.740 に答える
0

UITableViewControllerの参照を確認するUITableViewDataSourceと、それが準拠していることがわかりますがUITableViewDelegate、単に同じプロトコルに準拠しているだけではクラスが等しくなりません。UITableViewController は、 any で使用できるUITableViews での使用に適したクラスです。UIViewControllerUIView

于 2013-02-22T09:55:50.363 に答える
0

UITableViewControllerUIViewControllerすでに実装されているUITableViewDelegate, UITableViewDataSourceプロトコルであるため、クラスを継承するときに、それらをViewController再度実装する必要はありません。それは次のようなものです:

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

より明確にするために、は ですUITableViewDelegate, UITableViewDataSourceprotocolsUITableViewControllerは ですViewController

于 2013-02-22T10:21:33.633 に答える
0
@interface ShareViewController : UITableViewController

上記の行はShareViewController、から継承することを意味しますUITableViewController

@interface ShareViewController : UIViewController<UITableViewDataSource, UITableViewDelegate>

上記の行は、デリゲートShareViewControllerから継承UIViewControllerおよび実装することを意味しますUITableViewDataSource, UITableViewDelegate

于 2013-02-22T09:52:53.347 に答える