2013-07-10 60 views
0

我有一個UIViewController,其中有一個的UIViewController,UITableView的,協議

@interface MYViewController : UIViewController<UITableViewDelegate> 

    @property (weak, nonatomic) IBOutlet UITableView *tblView; 

現在我實現的UITableViewDelegate因爲我想使用的tableview。

所以在我viewdidload我做

- (void)viewDidLoad 
    { 
    [super viewDidLoad]; 
    self.tblView.delegate = self; 
    //self.tblView.dataSource = self; 
    } 

現在Datasource設置拋出一個警告,我從來不打

cellForRowAtIndexPath 

方法。

對編輯抱歉。

我在做什麼錯?

+0

你的問題是什麼?問題應該清楚。 –

+1

Qn不完整! – HRM

+0

tblView屬性應該強大不弱。 – Andrew

回答

3

你需要

self.tblView.datasource = self; 

還採用了以UITableViewDatasource協議,

@interface MYViewController : UIViewController<UITableViewDelegate,UITableViewDatasource> 

cellForRowAtIndexPath是一個數據源方法。

0

你的接口還應該實現UITableViewDataSource協議。

@interface MYViewController : UIViewController<UITableViewDelegate, UITableViewDataSource> 
{ 
.... 
} 
0

請如下嘗試.. UIViewController.h

@interface MYViewController : UIViewController<UITableViewDelegate,UITableViewDataSource> 
    @property (Strong, nonatomic) IBOutlet UITableView *tblView; 

請不要忘記tblView插座連接的tableView在你的.xib文件,因爲這是非常必需的,否則你的數據源的方法不會打電話。

在UIViewController.m文件

- (void)viewDidLoad { [super viewDidLoad]; 
self.tblView.delegate = self; 
self.tblView.dataSource = self; } 

,並實現兩個必需的數據源方法

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{ return (number of row you want in table)} 
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{ return cell } 

這肯定會爲你工作。

0

對於UITableViewDatasource協議添加UITableViewDatasource

@interface MYViewController : UIViewController<UITableViewDelegate, UITableViewDatasource> 

這行添加到viewDidLoad

self.tblView.datasource = self; 

,去你的故事板和鏈接 '數據源' 和 '委託' 給你tblView

0

您的實施中有幾個問題。

  1. 您不符合UITableViewDatasource協議。
  2. 你不設置tableview數據源。
  3. 您還沒有實現UITableViewDatasource協議的必要方法

你不能指望沒有設置數據源工作。