2015-09-15 51 views
0

我已經在collectionviewcell內部放置一個uitableview,並在collectionviewcell類中編碼如下。但數據源和委託方法沒有被調用可以幫助我解決問題TableViewDatasource和委託不調用時,tableview裏面collectionView單元格

- (id)initWithCoder:(NSCoder *)aDecoder { 
    if (self = [super initWithCoder:aDecoder]) { 

     arrayMenuAlerts=[NSMutableArray arrayWithObjects:@"Suri",@"John",@"Phillip",@"Sachin", nil]; 
     [self.contentView addSubview:tableView]; 
     tableView.dataSource=self; 
     tableView.delegate=self; 
    } 
    return self; 
} 
- (void)awakeFromNib { 

    [self.tableView registerClass:[UITableViewCell class] forCellReuseIdentifier:@"cell"]; 
    tableView.dataSource=self; 
    tableView.delegate=self; 
} 
+1

你有沒有設置datasource和委託方法的collectionview? –

+0

'tableView'是一個IBOutlet? – Nishant

+0

是tableview是一個ib插座,我已經設置datasource,代表收集view.Tableview進入collectionview cell.But沒有數據從數據源返回 –

回答

0

發生這種情況是因爲init方法中尚未創建對象「self」。你可以在另一個方法中放置tableView的dataSource和Delegate。像我一樣。

@synthesize tableview; 
NSMutableArray *arrayMenuAlerts; 

- (void)drawRect:(CGRect)rect{ 
    arrayMenuAlerts = [NSMutableArray arrayWithObjects:@"Suri",@"John",@"Phillip",@"Sachin", nil]; 
    tableview.dataSource = self; 
    tableview.delegate = self; 
    [tableview reloadData]; 
} 

- (id)initWithCoder:(NSCoder *)aDecoder { 
    return [super initWithCoder:aDecoder]; 
} 

-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{ 
    return [arrayMenuAlerts count]; 
} 

-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{ 
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"Cell" forIndexPath:indexPath]; 
    cell.textLabel.text = arrayMenuAlerts[indexPath.row]; 
    return cell; 
} 
+0

謝謝! Ostanik。它爲我工作。 –

相關問題