Ios5 UITableViewController的segue不作为推送,仅作为模式

Ios5 UITableViewController的segue不作为推送,仅作为模式,ios5,uitableview,segue,Ios5,Uitableview,Segue,我有这个视图堆栈: UIViewController --> (Modal segue) --> UITabBarController --> (relationship) --> UINavigationController --> (relationship) --> UITableViewController --> (segue) --> UIViewController 以下是我在UITableViewController中的序列

我有这个视图堆栈:

UIViewController --> (Modal segue) --> 
UITabBarController --> (relationship) --> 
UINavigationController --> (relationship) --> 
UITableViewController --> (segue) --> UIViewController
以下是我在UITableViewController中的序列代码:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    NSLog(@"selected row...");
    [self performSegueWithIdentifier:@"showVmail" sender:self];
    NSLog(@"done segue");
}

- (void) prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
    if ([[segue identifier] isEqualToString:@"showVmail"]) {
        NSLog(@"Got segue request...");
        NSIndexPath *indexPath = [self.tableView indexPathForSelectedRow];

        [segue.destinationViewController setMyVmail: [self.vmails objectAtIndex:indexPath.row]];

    }
}
单击表视图控制器中的项目时,我会看到以下日志消息:

selected row...
Got segue request...
Setting myVmail... // from the new view controller
done segue
它不会移动到我的新视图控制器上。 如果我改为模态,它会工作,但当然没有后退按钮。 就我看来,我做的每件事都是对的。我读过许多关于堆栈溢出的响应,都有相同的问题,他们的解决方案是将其放入UINavigationController。我已经这样做了


任何想法都将不胜感激

我尝试了其他地方的建议,你应该回到简单的案例。我将情节提要中的UINavigationController更改为指向一个基本的UIViewController,然后使其具有一个按钮,该按钮可连接到另一个UIViewController。当我运行它时,我仍然有我的UITableViewController

那时我才想起我是通过编程方式在UITabBarController中填充对象的,我不是在调用UINavigationController,而是跳过它并调用UITableViewController!所以事实上,我真的和其他人有同样的问题,错过了UINavigationController

将我的程序更改为链接UINavigationController而不是UITableViewController,现在一切都按预期工作