2012-06-23 1 views
0

분할보기 컨트롤러의 마스터보기에 탭 막대 컨트롤러가 있습니다. 일부 정보를 표시하기 위해 해당 탭 표시 줄 컨트롤러에 하위보기를 추가합니다. 모달 동작을 원하지 않기 때문에 모달 뷰를 사용하지 않고 마스터 뷰 내부에 표시 할 서브 뷰가 필요합니다.탭 막대 컨트롤러로 표시된보기를 다시 그리는 방법

이 정보보기의 표시는 현재 표시되는 내용에 따라 다른 여러보기 컨트롤러 중 하나에 의해 트리거 될 수 있습니다. 예를 들어지도에서 공개 버튼 목록의 셀을 탭하면됩니다.

때때로이 정보 하위보기를 닫을 때 탭 표시 줄 컨트롤러가 표시하는보기가 비어 있습니다. 일반적으로 단색 또는 흰색입니다. 나는 탭을 전환 할 수 있으며, 내가 있던 탭으로 돌아 가면보기가 제대로 그려집니다.

내가보기에 setNeedsDisplay 방법을 사용하여 시도하려는, 그래서 난 내 탭 바 컨트롤러 클래스 안에이 시도 :

- (void) redrawCurrentTab { 
    UIView *currentView = [[self.viewControllers objectAtIndex:self.selectedIndex] view]; 
    [currentView setNeedsDisplay]; 
} 

나는 currentView의 값이 표시되어야 뷰에 적합한 지 확인 . 그러나 내가 바라는대로 그 견해는 다시 그려지지 않습니다.

  1. 내가 어떻게 setNeedsDisplay 작품을 이해하지 않을 수 있습니다

    그래서 나는 내가 볼 수있는 두 가지 문제가있다.

  2. 탭 표시 줄 컨트롤러의 하위보기가 아닌 정보보기를 표시하는 더 나은 방법에 대한 조언을 찾고 있습니다.

답변

0
// This is a hack, because the current tab is disappearing when the details view is withdrawn. 
// So it needs to cycle to another view and then back. 
- (void) redrawCurrentTab { 
    if (currentIndex == 0) 
     self.selectedIndex = 1; 
    else 
     self.selectedIndex = 0; 
    self.selectedIndex = currentIndex; 
} 

currentIndex는 위임 방법에 설정된 tabBarController:didSelectViewController: