2010-03-09 2 views
1

내 iPhone 앱은 4 개의 기본 탭이있는 기본 tabController로 구성됩니다. ViewController A가 ViewController B (pushViewController 사용)를로드하는 상황이 있습니다. 지금의 ViewController A를 다시 얻고 다시 A와 얻기 내가 할 일은 쉬운 다른 UIViewController에서 액션 실행 UI보기

B.

에서 A의 작업을 실행하는 데 필요한 것은 : -

self.tabBarController.selectedIndex = 0; 
[self.navigationController popViewControllerAnimated:YES]; 

는 다음의 ViewController의 원인이 볼 수 있습니다.

하지만 어떻게하면 ViewController B가 A에서 작업을 실행하나요?

ViewControllerA *aVC = ((ViewControllerA *)((UIViewController *)[self.tabBarC.tabBarController.viewControllers objectAtIndex:0])); 
[aVC setAnnoSelected]; 

내가 얻을 할 경우에만 : - -을 :

내가 사용하는 시도

-[UINavigationController setAnnoSelected]: unrecognized selector sent to instance 0x461d290 

I없이 지금까지

[ViewControllerA performSelector:@selector(setAnnoSelected) withObject: nil afterDelay: 0.0]; 

하지만를 사용하는 것을 시도했다 즐거움.

모든 아이디어는 크게 감사하겠습니다.

감사 셰릴

P.S. 이 사이트는 도움을 줄 수있는 훌륭한 사이트입니다. 귀하가 저를 도왔을 때 질문에 대답 해 주신 모든 분들께 감사드립니다.

답변

2

tabBarController의 viewController는 실제로 UINavigationController입니다 (인식 할 수없는 선택기 오류로 알 수 있습니다). 당신은 아마 해당 컨트롤러의 자신의 뷰 컨트롤러에서보고 싶지 :

UINavigationController *navController = (UINavigationController *) [self.tabBarController.viewControllers objectAtIndex: 0]; 
ViewControllerA   *controller = [navController.viewControllers objectAtIndex: 0]; 

[controller setAnnoSelected]; 
당신은이 방법이 조금 허약 한, 그러나, 대신 통지와 함께이 일을 고려하는 것이 좋습니다

.

+0

신속한 응답을 주셔서 감사합니다. 알림을 쓰려면 [[NSNotificationCenter defaultCenter] addObserver : self ...를 사용 하시겠습니까? 나는 그것을 FormA에 넣은 다음 FormB가 그것에 응답하게합니까? – Cheryl

+0

예, formA를 -defaultCenter와 함께 관찰자로 등록하고 formB에 통지를 게시하십시오. –

관련 문제