0

我正在使用此代码使 tableview 单元格转到新视图:

[self performSegueWithIdentifier:@"hello" sender:self];

但是每当我构建并运行它并单击单元格时,它都会将我带到一个完全不同/不相关的视图。有任何想法吗?

4

2 回答 2

0

在您的 TableViewController 中尝试以下代码

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
    if ([[segue identifier] isEqualToString:@"yourSegueIdentifierName"]) {
        NSIndexPath *indexPath = [self.tableView indexPathForSelectedRow];
        NSManagedObject *object = [[self fetchedResultsController] objectAtIndexPath:indexPath];
        [[segue destinationViewController] setDetailItem:object];
    }
}

这将侦听转场,检查转场的标识符和您选择的行。然后它对您选择的行中的对象执行您的转场。如果需要,它还允许您在一个视图中轻松拥有多个 segue,您只需为不同的 segue 标识符添加“if”函数。

如果您在 TableViewController 中仅使用 ONE segue,则实际上并不需要标识符,但无论如何最好使用它,以防万一您想在以后的代码中添加一些其他 segue。

于 2012-08-10T10:15:20.063 回答
0

在情节提要中检查您的 segue 的标识符。

此外,如果您有多个 segue,请检查您是否将正确的 segue 连接到正确的按钮和正确的视图。

于 2012-08-09T23:02:44.000 回答