私はこのビュースタックを持っています:
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
そして、それは私の新しいView Controllerに移動しません。モーダルに変更すると動作しますが、もちろん戻るボタンはありません。私が見る限り、私はすべてを正しく行いました。同じ問題でスタック オーバーフローに関する多くの応答を読みましたが、それらの解決策は UINavigationController に入れることです。私はすでにこれをやった.
どんな考えでも大歓迎です!