prepareForSegue不会开火

时间:2012-01-16 06:20:59

标签: objective-c

我有一个带按钮的UIViewController,按钮打开firstTableViewController - > tabViewController(带有3个标签) - >其中一个标签有一个secondTableViewController - >的UIViewController。

一切都在故事板中。

在firstTableViewController中,prepareForSeque工作正常。我甚至没有做过选择行......

但是在secondTableViewController上,prepareForSeque不会触发。所以我添加了didSelectRowAtIndexPath,如下所示。但是,prepareForSegue仍然不起作用。

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    [self performSegueWithIdentifier:@"ShowComment" sender:self];
}

-(void) performSegueWithIdentifier:(NSString *)identifier sender:(id)sender
{
    [self prepareForSegue:self.storyboard sender:self];
}

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {


    //When a row is selected, the segue creates the detail view controller as the destination.      
    //Set the detail view controller's detail item to the item associated with the selected row.
NSLog(@"test");
    if ([[segue identifier] isEqualToString:@"ShowComment"]) {

    }
}

1 个答案:

答案 0 :(得分:0)

我发现了这个问题。我没有单元格的标识符。在故事板中,在属性检查器中选择原型单元格 - >标识符输入'Cell1'。

在代码中:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *CellIdentifier = @"Cell1";

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell == nil) {
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
    }

    // Configure the cell...
    Note *note = [notes objectAtIndex:indexPath.row];
    cell.textLabel.text = note.title;
    return cell;
}
瞧,它有效。