我有这个视图堆栈:
UIViewController --> (Modal segue) -->
UITabBarController --> (relationship) -->
UINavigationController --> (relationship) -->
UITableViewController --> (segue) --> UIViewController
这是我在 UITableViewController 中的 segue 代码:
- (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。我已经这样做了。
任何想法将不胜感激!