1

내 iPad 응용 프로그램에 UIModalPresentationFormSheet를 구현했습니다. 새 뷰는 부분 뷰를 부분적으로 다루며 사용자가 선택하도록 허용합니다. 이 모든 위대한, 그러나 작동합니다 ...모델이 UIModalPresentationFormSheet를 사용하여 표시되는 경우 하위보기에서 데이터를 다시로드하는 방법

사용자가 옵션을 선택하면 기본 세부 정보로 기본보기를 업데이트하고 싶지만 작동시키지 못합니다!

나는 setNeedsDisplay 나 [table reloadData]를 사용해 보았습니다. viewDidAppear 및 viewWillAppear 메서드에서.

코드를 위해서 몇 가지 코드를 다음과 같이

- (void)viewWillAppear:(BOOL)animated { 
    [self updateUserDetails]; 
    [self.myTableView reloadData]; 
} 

- (void)viewDidAppear:(BOOL)animated { 
    [self updateUserDetails]; 
    [self.myTableView reloadData]; 
} 

- (void)updateUserDetails { 
    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; 
    [defaults setObject:selection forKey:@"userDetail"]; 
} 

내 전환입니다. 이 행을 주석 처리하면 응용 프로그램이 예상대로 작동합니다.

myNavigationController.modalPresentationStyle = UIModalPresentationFormSheet; 

감사합니다.

답변

0

설정할 수 있습니다. self.view.autolayoutSubviews = NO; UI가 UIModalPresentationFormSheet의보기 크기를 변경합니다. 이로 인해 다시로드 프로세스가 중단 될 수 있습니다.

+1

"재로드 프로세스가 중단 될 수 있습니다." 확장하십시오. – adamdunson

+0

재로드 프로세스에 대한 세부 사항을 모르겠습니다. UIModalPresentationFormSheet 스타일을 사용할 때 시스템이보기의 크기를 변경하고 뷰 컨트롤러가 자동 레이아웃 하위 뷰를 포함하고 테이블 뷰의 크기를 변경하는 등의 문제가 발생할 수 있습니다. 재로드를 호출합니다. 우리는 소스 코드를 읽을 수 없다. 우리는 어떤 일이 일어 났는지 모른다. 그러나 이것은 나에게 도움이된다. – decazuk

0

나는 사용자의 선택을 감지하는 코드 근처에 데이터를 다시로드해야하며 viewDidAppearviewWillAppear이 아니라고 생각합니다.

관련 문제