2014-02-19 2 views
0

은 나는 스토리 보드를 통해 UITabBarController가를로드 해요 :어떻게 UITabBarController에서로드 할 UIViewController의 속성을 설정할 수 있습니까? 다음과 같이

UIStoryboard *sb = [UIStoryboard storyboardWithName:@"EventsAdmin" bundle:nil]; 
[self.navigationController pushViewController:[sb instantiateInitialViewController] animated:YES]; 

초기 뷰 컨트롤러는 uitabbarviewcontroller 그러나 나는로드 뷰 컨트롤러의 각 속성을 설정하고 싶습니다이다. 어떻게해야합니까?

+0

(myProtocol의 일부로서) 다음 당신의 rootViewController에 당신은 할 수 있습니다 : 그런 다음 모달 viewControllers는 viewWillAppearAnimated에서 대리자를 조회 할 수 있습니다? 설명 해주십시오. – userx

+0

@AbhishekMukherjee. –

+0

탭 막대 컨트롤러 안에로드 된 모든 viewController는 해당 viewController 클래스에서 원하는만큼의 속성을 가질 수 있습니다. 당신이 직면 한 정확한 문제는 무엇입니까? – userx

답변

1

이 다음과 같은 방법을 얻을 수 있습니다 루프에서

UIStoryboard *sb = [UIStoryboard storyboardWithName:@"EventsAdmin" bundle:nil]; 

id vc = [sb instantiateInitialViewController]; 
[self.navigationController pushViewController: vc animated: YES]; 

if ([vc isKindOfClass: [UITabBarController class]]) 
{ 
    for (UIViewController *controller in [(UITabBarController *)vc viewControllers]) 
    { 
     // set your property 
    } 
} 

을 컨트롤러 당신이의 속성을 수정하려는 뷰 컨트롤러 클래스의 인스턴스 인 경우 확인해야합니다.

+0

그러면 UITabBarController가 모든 하위보기 컨트롤러를 즉시 초기화합니다. –

+0

좋은 질문입니다. 아마도 initWithCoder : 메소드 내에서 tabbarcontroller로 초기화 될 것입니다. 인터페이스 빌더를 통해 설정되는 한 – Lukas

0

또는 ... 당신은 프로토콜을 선언하고이 모달 viewControllers에게 유형

`IBOutlet id <myProtocol> delegate 

의 속성을주고 그리고 스토리 보드에서 루트 뷰 컨트롤러에이를 연결 할 수있다. 당신은 uitabbarviewcontroller 내부에 적재 된 viewControllers의 각 속성을 설정하려는

-(void)setMyStuffUp:(UIViewController *)modalViewcontroller{ 


if ([modalViewController isKindOfClass:[viewControllerOne class]]){ 

//set stuff 

}elseIf (etc == etc){ 

//setOtherStuff.. 

} 



} 
관련 문제