EditingStyleForrowAT IndexPath - iOS 5의 화재, iOS 6에서는 화재가 없습니다.
-
11-12-2019 - |
문제
단순한 마스터 및 세부보기 컨트롤러가 두 개의 세그리브와 연결된 "세부 사항 표시"및 "새로 추가"용 하나입니다.
- "세부 정보 표시"세부 뷰 컨트롤러에 Setediting : No.
- 탭 "+"(아이콘 추가) 세트를 사용하여 세부 뷰 컨트롤러로 세그리브 : 예
iOS 5.1 : "+"가 기대 하듯이 세부 페이지가 편집 모드에 있고 삽입 및 삭제 표시기를 보여주기 위해 편집 모드에 편집합니다.
iOS 6.0 : "+"는 세부 페이지로 전환하지만 EditingStyleForrowAtIndexPath가 발생하지 않습니다.설정된 다른 코드 : 예가 실행됩니다.DIDSELECTROWATINDEXPATH는 화재 (delegate= self)를 수행합니다.
세부 정보 페이지 편집 모드가 두 경우 모두 예상대로 작동합니다.
아이디어가 있습니까?
.// 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가 DetoDite 메서드를 호출하여 설정할지 여부를 확인합니다.
Master.m
-(BOOL)isNewRecipe {
return (_isNewRecipe == 1);
}
Detail.m
if ([self.delegate isNewRecipe]) {
[self setEditing:YES];
}
. 제휴하지 않습니다 StackOverflow