2012-09-08 63 views
0

我嘗試將UITableView打包爲我自己的。 的代碼是:UITableView不會調用代理

@interface OPTableView : UIView<UITableViewDelegate,UITableViewDataSource> 
{ 
    NSMutableArray *_dataSource; 
    id<OPTableviewDelegate>_delegate; 
} 
@property(retain,nonatomic)id<OPTableviewDelegate>delegate; 
@property(retain,nonatomic)NSMutableArray *dataSource; 

.M:

@implementation OPTableView 

@synthesize delegate=_delegate; 
@synthesize dataSource=_dataSource; 

- (id)initWithFrame:(CGRect)frame 
{ 
    self = [super initWithFrame:frame]; 
    if (self) { 
     tableView=[[UITableView alloc] initWithFrame:frame]; 
     tableView.delegate=self; 
     tableView.dataSource=self; 
     _dataSource=[NSMutableArray array]; 
     [self addSubview:tableView]; 
     [tableView release]; 
    } 
    return self; 
} 

#pragma table delegate 

- (void)tableView:(UITableView *)tab didSelectRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
} 

當我創建OPTableView,它可以在screen.But顯示問題是,當我選中一個表,那就不叫委託方法:didSelectRowAtIndexPath,但更糟的是,它打破了。

+4

你是什麼意思「It breakdown」?它崩潰?如果是這樣,怎麼樣?你收到什麼信息?幫助我們幫助你。 –

+0

是的,它崩潰了。它只是顯示:0x110009b:movl 8(%edx),%edi。並且日誌沒有顯示任何內容。 – Vic

回答

0

嘗試將單元格的選擇樣式設置爲某些非無值。另外請注意,您應該實施表中所有必需的委託消息 - 您是否這樣做?

+0

Thanks.I已經這麼做了。 – Vic

0

什麼是OPTableViewDelegate?你的表的委託類型是OPTableViewDelegate,而不是UITableViewDelegate。

+0

我只想將UITableViewDelegate轉換到我的OPTableViewDelegate,也許你沒有看清代碼。我只是省略了一些代碼。 – Vic

0

所有的,我犯了一個非常愚蠢的錯誤。 在'initWithFrame'方法中,代碼:_dataSource = [NSMutableArray array];是絕對錯誤的。我刪除了這段代碼「_dataSource = [NSMutableArray array];」,一切正常。

謝謝大家。

相關問題