2012-02-21 21 views
6

我沉迷於使用TableViewController在故事板,它的類從直接的UITableViewController繼承和功能,如:如何與UIViewController中的UITableView進行交互?

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *) 
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section 

默認有,你就必須執行。但是現在我在故事板中使用ViewController(從UIViewController繼承),並使用Object庫中的UITableView控件拖放到視圖控制器中。顯然,我將附加到我的故事板ViewController的類將從UIViewController繼承。現在,我如何與我的視圖控制器中的UITableView控件中的表單元進行交互。想要實現上述相同的行功能。

回答

12

在您的視圖控制器.h文件中實現UITableViewDataSourceUITableViewDelegate協議。

有一個UITableView的插座。

viewDidLoad中,由於viewcontroller實現了協議,因此將tableView的數據源和委託設置爲self

然後,編寫cellForRowAtIndexPath方法。它會被調用。

+0

謝謝,它的工作 – Firdous 2012-02-21 11:54:23

+9

如果你使用的問題asker是故事板,在ViewController的viewDidLoad中設置數據源和代理到'self'不是最簡單的方法。如果您在故事板上選擇了「UITableView」並轉到連接檢查器,則會看到「dataSource」和「委託」的連接點未連接。按住Ctrl並單擊並拖動到視圖控制器左下方的黃色圓圈,以將ViewController設置爲表視圖的數據源和委託。 – 2013-07-04 08:30:49

2

您必須將UITableViewDelegate和UITableViewDatasource協議分配給您的表並實施它。您的問題中的方法是來自這些協議的方法,當您使用UITableViewController時它們會自動出現。

相關問題