2009-05-12 4 views

답변

12

간단한 답변 : UINavigationController를 사용하는 경우 visibleViewController를 사용하여 별도의 부울 값을 추적 할 필요가 없습니다.

긴 답변 : 일반적으로 viewWillAppear 내부에서 reloadData를 호출하면 내 View에서 내 모델의 일부 추가 부분을 관찰해야한다는 표시입니다. reloadData 문제는 전체 테이블을 다시로드한다는 것입니다. 종종 테이블의 작은 부분 만 업데이트하면됩니다. 내 전략은 일반적으로 특정 시점이 표시되는지 여부에 관계없이 발생하는대로 필요한 부분 만 업데이트하는 것입니다. 그게 꽤 모호한 반응 인 것 같습니다. 아마도 당신의 샘플 코드가 좀 더 구체적인 코드 일 수 있습니다. ...

+0

> 일반적으로 > 내에서 reloadData를 호출하는 것을 발견하면 내 View 관찰 할 필요가있다> 내 모델의 일부 추가 부분 동의. –

+0

그래, 그게 내가 원하는거야. 그 줄은 'if (self.navigationController.visibleViewController! = self) { ...}'입니다. BTW, 나는 이것을 UITabBarController의 UIViewController에서 사용했습니다. – DrGary

1

을 나는 viewWillAppear 및 viewWillDisappear 변경되는 부울을 추가 할 수 있지만 같은이 직접 상태를 감지하는 방법이 될한다고 보인다 다음과 같습니다.

[(UITableView *)[self view] reloadData]; 

viewController의보기에서 WiillAppear. 나는 확실하지 않습니다, 당신이 묻고있는 것이지만 어쨌든입니다.

0

당신은 아마 뷰의 창 속성을 확인할 수 있습니다

- (BOOL)isVisible 
{ 
    return view.window != NULL; 
} 

을하지만 난 BOOL 변수를 유지하는 것이 더 나은 생각합니다.

관련 문제