EditingStyleforlowat indexpath - пожары в iOS 5, не огонь в iOS 6
-
11-12-2019 - |
Вопрос
У меня есть простые контроллеры Master и подробностей, связанные с двумя целями, один для «Показать деталь» и один для «Добавить новый».
- .
- "Показать деталь" Segues к подробному контроллеру представления с заданием: нет.
- tap "+" (add icon) segues к Контроллеру по деталям представления с заданием: Да
iOS 5.1: «+» работает, как я ожидаю, эта страница детализации находится в режиме редактирования и редактирование ваших огней, чтобы показать индикаторы вставки и удаления.
iOS 6.0: «+» делает переход на страницу «Деталь», но редактирование «YleForeAtindexPath никогда не пожали ».Другой код, который находится в задании: да, выполняется.Didelectrowatindexpath делает огонь (делегат= я).
один раз на режиме редактирования деталей работает как ожидается в обоих случаях.
Любые идеи?
.// 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]; .... } }
Решение
Я подумал это.Я не знаю, почему это исправление, я надеюсь, что это не заменяет плохой код с худшим кодом.
Master.m
// iOS 5 -- this is OK
detailViewController.editing = YES;
.
Для iOS 6 Мне нужна DetailViewController, чтобы позвонить в метод делегата, чтобы определить, следует ли настроить: да.
Master.m
-(BOOL)isNewRecipe {
return (_isNewRecipe == 1);
}
Detail.m
if ([self.delegate isNewRecipe]) {
[self setEditing:YES];
}
.