2010-05-16 4 views
1

UITabBarController를 사용할 때 사용자가 View1에 일부 데이터를 입력하고 버튼을 누르면 몇 가지 계산을 수행하고 결과를 View2에 표시해야합니다.UITabBarController를 사용할 때 버튼에서보기 변경 강제 수행

저는 AppDelegate, View1Controller, View2Controller 및 View3Controller (View3은 기본적으로 정적 뷰입니다)가 있습니다. 내 AppDelgate는 UITabBarController * rootController를 선언합니다.

View1에서 나는 buttonPressed에 대한 IBAction에서 계산을 수행했습니다. 그러나보기를 프로그래밍 방식으로 View2로 전환 할 수 없습니다.

나는 비슷한 문제를 찾기 위해 많은 노력을 기울였으며 "self.rootController.selectedIndex = 1"; 그러나, 내 View1Controller buttonPressed 내에서 이렇게 할 때 "구조체 또는 공용 구조체가 아닌 뭔가있는 rootController 구성원에 대한 요청"오류가 발생합니다.

나는 여기에 기본적인 것을 놓치고 있다고 생각합니다. 아마 AppDelegate로 뭔가를 할 필요가 있습니다.하지만 벽에 머리를 두드리는 중입니다.

누구나이 상황에서 몇 가지 지침을 제공 할 수 있습니까? View1Controller 헤더에서 수행해야하는 주요 작업과 AppDelgate를 참조하여 구현할 수 있습니까? 고맙습니다!

답변

0

이것은 이상한 UI처럼 들리지만 올바른 일을하려고한다는 것을 인정합니다.

iPhone 개발 모델 뷰 컨트롤러 - MVC에 관한 것입니다. 따라서 기본적으로 view1은 모델을 업데이트하고 View2는 모델을 기반으로 계산을 수행합니다.

탭바드 컨트롤러를 사용하는 경우 이러한 작업을 수행하기 위해 탭을 전환 한시기를 알고 싶을 수도 있습니다. view1에서 viewWillDisappear에서 모델을 업데이트하는 코드를 작성하고 싶을 수 있습니다.이 탭은 탭이 다음 코드로 대체 될 때 실행됩니다. 보완 기능 (view2에서이 기능을 사용하고 싶을 수도 있음)은 viewWillAppear입니다.이 기능을 사용하여 view2를 모델의 데이터로 업데이트 할 수 있습니다.

이제 모델을 넣을 위치를 파악해야합니다. 모델에 저장해야하는 데이터를 기반으로 @ 매개 변수를 사용하여 클래스를 만들 수 있습니다. 그런 다음 AppDelegate에서 모델을 인스턴스화하고 모델을 두 뷰 모두에 매개 변수로 전달할 수 있습니다.

1

한 탭에서 다른 탭으로 전환하는 방법을 검색하는 사람에게는 대답이 here입니다.

관련 문제