ignitingstyleforrowitat índicepath - incendios en iOS 5, no se dispara en iOS 6
-
11-12-2019 - |
Pregunta
Tengo controladores de vista maestros y detalles simples conectados con dos seguas, uno para "Detalles de muestre" y uno para "Agregar nuevo".
- "Mostrar detalles" Segues en el controlador de vistas detalladamente con SetEniting: No.
- Toque "+" (Agregar icono) Segues al controlador de vista de detalles con SetEnTITING: SÍ
iOS 5.1: "+" funciona como espero, la página de detalles está en modo de edición y EDITYStyleForrowArkInDexPath Fire para mostrar los indicadores de inserción y eliminación.
iOS 6.0: El "+" hace la transición a la página de detalles, pero EditingStyleForrowArtinDexpath nunca se dispara.Otro código que está en el establecimiento: sí se ejecuta.DIDSSSELECTROWATINGETEXPATH HA FIRE FUEGO (Delegado= yo).
Una vez en el modo de edición de la página de detalles funciona como se espera en ambos casos.
¿Alguna idea?
// Master.m if([[segue identifier] isEqualToString:@"NewRecipe"]) { DetailViewController *detailViewController = [segue destinationViewController]; // stuff detailViewController.recipe = r; detailViewController.delegate = self; detailViewController.editing = YES; } // Detail.m -(void)setEditing:(BOOL)flag animated:(BOOL)animated { if (flag) { [self.tableView setEditing:flag animated:YES]; [self.tableView beginUpdates]; // the row does get added [self.tableView insertRowsAtIndexPaths:@[pathToAdd] withRowAnimation:UITableViewRowAnimationAutomatic]; // datasource gets updated here [self.tableView endUpdates]; .... } }
Solución
lo descubrí.No sé por qué esta es la solución, espero que esto no reemplace un código malo con un código peor.
Master.m
// iOS 5 -- this is OK
detailViewController.editing = YES;
Para iOS 6, necesitaba el control de detalle para hacer una llamada a un método delegado para determinar si desea establecerse: sí.
Master.m
-(BOOL)isNewRecipe {
return (_isNewRecipe == 1);
}
Detail.m
if ([self.delegate isNewRecipe]) {
[self setEditing:YES];
}