salte de UITableViewController no funciona como push, sólo como modal
-
26-10-2019 - |
Pregunta
Tengo este punto de vista de la pila:
UIViewController --> (Modal segue) -->
UITabBarController --> (relationship) -->
UINavigationController --> (relationship) -->
UITableViewController --> (segue) --> UIViewController
Aquí está mi continuación el código en el 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]];
}
}
Cuando hago clic en un elemento en la tabla de controlador de vista, veo estos mensajes de registro:
selected row...
Got segue request...
Setting myVmail... // from the new view controller
done segue
Y no mueve a mi nuevo controlador de vista.Si me cambio a un Modal, segue funciona, pero, por supuesto, no hay ningún botón.Tan lejos como puedo ver, He hecho todo correctamente.He leído muchos una respuesta en stack overflow, con el mismo problema, y su solución es poner en el UINavigationController.Ya he hecho esto.
Cualquier pensamiento sería muchly apreciado!
Solución
He probado la sugerencia visto en otro lugar que usted debería volver a casos sencillos.He cambiado el UINavigationController en el guión gráfico a punto básico UIViewController y, a continuación, para que tener un botón que hicieron la transición a otro UIViewController.Cuando me encontré con él, yo todavía tengo mi UITableViewController!
Que es cuando me acordé de que yo era a través de programación de llenado en los objetos en el UITabBarController, y que no estaba invocando el UINavigationController, pero omitiendo que e invocando la UITableViewController!Así que, de hecho, yo realmente estaba teniendo el mismo problema que todos los demás, la falta de la UINavigationController !
Cambio mi programa en el enlace a la UINavigationController en lugar de la UITableViewController y ahora todo está funcionando como se esperaba.