如何从tableview推送到tableview

时间:2014-02-06 16:49:06

标签: ios objective-c uitableview

- (UITableViewCell *)tableView:(UITableView *)tableView 
         cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{

    static NSString *CI= @"GenusNameCell";

    GenusNameCell *cell = [tableView dequeueReusableCellWithIdentifier:CI];
    if (cell == nil) {
        cell = [[GenusNameCell alloc] initWithStyle:UITableViewCellStyleDefault
                                    reuseIdentifier:@"GenusNameCell"];

        [cell setAccessoryType:UITableViewCellAccessoryDisclosureIndicator];
    }
    int row = [indexPath row];

    cell.GenusNameLabel.text = [genusName objectAtIndex:indexPath.row];
    cell.GenusCommonNameLabel.text = _genusCommonName[row];

    return cell;
}

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { 
    SpeciesViewController *Species = [[SpeciesViewController alloc] initWithNibName:@"SpeciesViewController" bundle:nil];
    if ([[genusName objectAtIndex:indexPath.row] isEqual:@"Abelia"]) {
        Species.SpeciesInt = 0; 
        [Species setTitle:[genusName objectAtIndex:indexPath.row]];
    }
}

我有2个表视图要连接,但我不知道这是否是正确的代码。它运行然后我点击它崩溃的单元格。有人能帮助我吗?

2 个答案:

答案 0 :(得分:1)

当您选择单元格时,会创建一个新VC,但它永远不会显示。使用

[self.navigationController pushViewController:Species animated:YES];

提出它。

您也可以从第一个VC中的单元格Ctrl键拖动到第二个VC(在Storyboard中)并使用此代码:

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
    if ([segue.identifier isEqualToString:@"nameOfYourSegue"]) {
        if ([[segue destinationViewController] isKindOfClass:[SpeciesViewController class]]) {
            SpeciesViewController *Species = (SpeciesViewController *)[segue destinationViewController];
         Species.SpeciesInt = 0; 
        [Species setTitle:[genusName objectAtIndex:indexPath.row]];
        }
}

请记住在故事板中设置segueIdentifier!

答案 1 :(得分:0)

您使用的是故事板还是笔尖?

如果您正在使用storyboard,则需要实现prepareForSegue,而如果您正在使用nib,那么您需要将新视图控制器推送到didSelectRowAtIndexPath中的堆栈。