문제

단순한 마스터 및 세부보기 컨트롤러가 두 개의 세그리브와 연결된 "세부 사항 표시"및 "새로 추가"용 하나입니다.

  • "세부 정보 표시"세부 뷰 컨트롤러에 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];        
}
.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top