2008-11-11 4 views
2

일부 데이터의 표시를 관리하는 UIViewController이 있습니다. 사용자가이 데이터를 편집하려면 UIViewController을 스택에 푸시합니다. 사용자가 상위 뷰 컨트롤러 편집을 마치면 스택에서 꺼내집니다. 편집보기가 팝업 된 후 내 디스플레이를 업데이트해야한다는 것을 아는 가장 우아한 방법은 무엇입니까?스택 위의 UIViewController가 팝되었을 때를 알 수있는 가장 좋은 방법은 무엇입니까?

내 데이터보기의 viewDidLoad 메서드에 콘텐츠 업데이트 코드를 넣을 수 있다고 생각했지만보기가 표시 될 때 항상이 메서드가 호출되지는 않습니다. 특히 뷰 스택을 탐색 할 때가 아닙니다. .

또한 내 데이터보기 컨트롤러를 UINavigationController의 대리자로 설정하고 – navigationController:didShowViewController:animated:이 호출 될 때까지 기다리는 것이 좋습니다. 내 관심사는 표시 될 때 알림을 받아야하는 다른보기 컨트롤러가있을 수 있다는 것입니다. 어떤 컨트롤러가 didShowViewController 메시지를 수신해야 하는지를 관리하는 작은 두통으로 변합니다.

답변

5

저는 viewWillAppear이 트릭을 할 것이라고 생각합니다.

그렇지 않으면 편집보기 컨트롤러가 부모 컨트롤러를 가리키는 대리인의 새로운 방법을 호출 할 수 있습니다. 여기에서 데이터 모델을 업데이트하고 표시 할 수 있습니다. 예 :

- (BOOL)textFieldShouldReturn:(UITextField *)textField { 
    if ([delegate respondsToSelector:@selector(editEntryByTitle:)]) 
     [delegate performSelector:@selector(editEntryByTitle:) withObject: textField.text]; 
    [textField resignFirstResponder]; 
    [self dismissModalViewControllerAnimated:YES]; 
    return YES; 
} 
+0

viewWillAppear는 매력처럼 작동했습니다. 감사합니다. – kubi

관련 문제