2013-02-18 69 views
0

我有一個實現UITableView的視圖。我有一個名爲setData的方法,它允許我傳遞一個NSMutableArray。一旦我這樣做,我打電話給[self reloadData]。我的理解是,一旦這被稱爲檢查數組的所有函數,並設置表格單元應該運行。在UITableView中調用reloadData似乎沒有填充我的表格單元格

我已經把一些日誌語句,也嘗試設置斷點,並沒有任何代碼被調用。想知道我做錯了什麼。

這是我的.m代碼。

#import "JornadaKMLList.h" 

@implementation JornadaKMLList 

- (id)initWithFrame:(CGRect)frame 
{ 
    self = [super initWithFrame:frame]; 
    if (self) { 
     // Initialization code 
    } 
    return self; 
} 

-(void)setData:(NSMutableArray*)value 
{ 
    collection = value; 

    [self reloadData]; 
} 

//table view stuff 

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView 
{ 
    NSLog(@"this is line 33"); 
    return 1; 
} 

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section 
{ 
    NSLog(@"this is line 39"); 
    return [collection count]; 
} 

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    NSLog(@"this is line 43"); 
    static NSString *CellIdentifier = @"Cell"; 

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier]; 

    if (cell == nil) 
    { 

     cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] ; 

    } 

    // Configure the cell... 
    KmlVO *vo = [collection objectAtIndex:indexPath.row]; 
    cell.textLabel.text = vo->title; 


    return cell; 

} 

@end 

這裏是我的.h代碼

#import <UIKit/UIKit.h> 
#import "JornadaKMLList.h" 
#import "KmlVO.h" 
@interface JornadaKMLList : UITableView <UITableViewDelegate,UITableViewDataSource> 
{ 
    NSMutableArray *collection; 
} 
-(void)setData:(NSMutableArray*)value; 
@end 

回答

1

您需要設置UITableViewdatasourcedelegate特性是你正在使用的UITableView子類。

換句話說,在你的JornadaKMLList類的某個地方,設置self.datasource = selfself.delegate = self

相關問題