2011-10-01 4 views
2

내 iPad 용 UiTabBarController를 사용합니다. 탭 중 하나는 즐겨 찾기가있는 UITableView입니다. 셀을 클릭 할 때 다른 탭의 viewController에서 즐겨 찾기가 열리길 원합니다.다른 탭의 viewcontroller에 메시지를 보내는 방법

나는 singleton에 변수를 할당하고 [self.tabBarController setSelectedIndex : 2]에 의해 다른 탭을 선택하여 추한 방법으로 해결했습니다.

ViewWillAppear에서 대상 viewController 나는 singleton에서 값을 읽은 다음 모든 작업을 수행합니다.

이렇게하려면 적절한 방법이 있어야합니다. 다른 탭에서 ViewController의 인스턴스를 어떻게 참조합니까? 탭에 다른 viewController를로드하는 방법이 있습니까?

누구나?

답변

0

viewControllers 속성을 사용하여 탭보기에서 모든보기 컨트롤러를 가져올 수 있습니다. 워드 프로세서

:

이 속성의 기본값은 전무하다. 탭 막대 컨트롤러를 구성 할 때이 속성을 사용하여 탭 막대 인터페이스의 각 탭에 대한 내용을 지정할 수 있습니다. 배열에있는 뷰 컨트롤러의 순서는 탭 표시 줄의 표시 순서에 해당합니다. 따라서 인덱스 0의 컨트롤러는 가장 왼쪽 탭에 해당하고 컨트롤러는 인덱스 1에 다음 탭이 오른쪽에있는 식으로 배열됩니다. 탭 막대에 들어갈 수있는 것보다 많은보기 컨트롤러가있는 경우 배열 끝의보기 컨트롤러는이 배열에 포함되지 않은 추가 탐색 컨트롤러로 관리됩니다.

@protocol MyTableViewControllerDelegate <NSObject> 

- (void) myTableViewController: (MyTableViewController *) myTableViewController didSelectSomeObject: (MyClass *) object 

@end 

및 대리자에 대한 속성을 만들 :

0

테이블 뷰 컨트롤러에 대한 위임 프로토콜을 만들기

@property (nonatomic, assign) IBOutlet id<MyTableViewControllerDelegate> delegate; 

그런 다음 두 번째 뷰 컨트롤러는 테이블의 대리인이 될 수 있도록 보기 컨트롤러 - 그들 중 하나를 인터페이스 빌더, 또는 애플 리케이션 위임에 모두에 대해 알고있는 그들을 연결하여.

그러면 테이블의 행이 선택 될 때마다 다른보기 컨트롤러에 알릴 위임 메서드를 호출합니다.

관련 문제