我的表格視圖中有兩個自定義單元格,可以正確顯示。 MyCustomCellB
有一個按鈕,當用戶點擊這個按鈕時,我會以編程方式調用一個segue,這也適用,但會導入錯誤的變量。它需要「屬於」MyCustomCellA
型單元的不同數據。但是,如果我第一次選擇單元格,然後點擊按鈕,它會正常工作,不知何故,選擇後它會得到正確的數據。我的cellForRowAtIndexPath:
不正確?在表視圖中有兩個自定義UITableViewCell的錯誤indexpath
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
if ([object[@"num"] isEqualToString:@"one"]) {
MyCustomTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"cell" forIndexPath:indexPath];
//... cell display
cell.acceptLabel.tag = indexPath.row;
[cell.acceptLabel addTarget:self action:@selector(didTapBttn:) forControlEvents:UIControlEventTouchUpInside];
return cell;
} else {
MyCustomTableViewCellB *cellMessage = [tableView dequeueReusableCellWithIdentifier:@"cell2" forIndexPath:indexPath];
//... cell display
return cellMessage;
}
}
- (void)didTapBttn:(id)sender {
[self performSegueWithIdentifier:@"info" sender:self];
}
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
if ([[segue identifier] isEqualToString:@"info"]) {
if ([[segue destinationViewController] isKindOfClass:[DViewController class]]) {
NSIndexPath *indexPath = [self.tableView indexPathForSelectedRow];
DViewController *datap = [segue destinationViewController];
PFObject *passObj = [self.objects objectAtIndex:indexPath.row];
datap.infoName = passObj[@"infoName"];
datap.infoId = passObj[@"id"];
}
if ([[segue identifier] isEqualToString:@"desc"]) {
if ([[segue destinationViewController] isKindOfClass:[DViewController class]]) {
NSIndexPath *indexPath = [self.tableView indexPathForSelectedRow];
DViewController *datap = [segue destinationViewController];
PFObject *passObj = [self.objects objectAtIndex:indexPath.row];
datap.infoN = passObj[@"descName"];
datap.infoId = passObj[@"descId"];
}
}
什麼是對象字典?即:[object [@「num」] – Alex 2015-03-02 20:12:45
@Alex這是一個自定義對象,它包含一些字符串屬性。 – rihe 2015-03-02 20:17:33
您是否期望在表重裝過程中更改其值,以便可以實例化不同的表視圖單元格類型?我覺得這是一個糟糕的代碼設計決定。這個'object [@「num」]'值的目的是什麼? – 2015-03-02 20:22:39