2012-03-12 5 views
5

Navigation Controller의 일부가 될 수없는 SplitViewController를 사용하고 있습니다. IBAction에 SetRootViewController를 사용하고 있는데 괜찮습니다.하지만 움직이지는 않습니다. 이상적으로 네비게이션 컨트롤러 (왼쪽/오른쪽에서 슬라이드)와 같은 애니메이션을 사용하고 싶습니다. 그러나 불가능하다면 이것을 수행해야 할 때 일관된 애니메이션을 사용하고 싶습니다.setRootViewController에 애니메이션을 적용 할 수 있습니까?

+0

원하는 것에 대해 더 자세히 설명해 줄 수 있습니까? UISavitController 푸시와 같은 애니메이션을 UISplitViewController에 넣고 싶습니까? –

+0

Svc는 사용자가 버튼을 클릭하면 뷰 컨트롤러 인 첫 번째 화면에서 ibaction에서로드됩니다. 나는 Svc가 푸시 (push) 또는 크로스 디졸브 (cross-dissolve) 등으로 움직이기를 원합니다. – glenstorey

답변

5

잘 모르겠지만 다음을 제안합니다.

UIWindowrootViewController으로 UISplitViewController을 설정하십시오. viewDidLoad에서 단추의 UIViewController을 모달로 사용하여 presentModalViewController:animated: 호출을 만듭니다. 애니메이션을 만들지 않도록하십시오. 이렇게하면 모달보기가 앱이 시작될 때 처음 보는 환상이 생깁니다. 버튼을 누르면 버튼 UIViewController의 애니메이션이 dismissModalViewControllerAnimated:으로 활성화됩니다. 이제 애니메이션 방법을 선택할 수 있습니다. 당신의 선택 중 하나는 십자가에 의존하는 것입니다.

+0

그건 정말 창조적 인 해결책입니다. 나는 그것을 풀어서 어떻게 진행되는지 알려줄 것입니다. – glenstorey

+0

이렇게하면 문제가 해결 될 수 있습니다. 올바른 답을 얻을 수 있습니다.하지만 실제로 사용할지 여부는 확실하지 않습니다. 약간 지저분한 느낌이 들며 의도 한 디자인 흐름을 약간 깨뜨립니다. 특히 SVC는 앱의 한 부분에서만 사용되기 때문에 특히 그렇습니다. – glenstorey

+0

@Dries De Smet-- 당신이 제안한 것을 시도한 것은 presentModalViewController에 코드를 썼습니다 : animated : SVC의 ViewDidLoad에서 btnClick ..을 닫았습니다.하지만 VC가 해제되고 Svc가 Svc ViewDidLoad로 표시됩니다. 다시 호출하여 presentModalViewController : animated : 호출되고 Vc가 다시 표시됩니다. 내가 뭔가 잘못하고있는거야. – Bonnie

2

iOS 5.0을 사용하면 presentViewController:animated:completion을 사용하여 초기 rootViewController에서 SplitViewController를 표시 할 수 있습니다.

iOS 5.0 이전 버전에서는 rootViewController보기에서 transitionFromView:toView:duration:options:completion 메서드를 사용하고 있었기 때문에 SplitViewController에 여러 메시지를 수동으로 전달해야했습니다. iOS 이전 버전 5.0은 컨테이너 ViewController를 지원하지 않습니다.

하지만 아마도 디자인을 다시 생각하고 싶을 것입니다. SplitViewController를 rootViewController로 초기 설정해야합니다. 앱을 시작할 때 (또는 필요할 때마다) LoginViewController를 모달로 표시해야합니다. 사용자가 성공적으로 로그인하면 선택할 애니메이션이있는 모달보기가 숨겨집니다.

SplitViewController는 기본 ViewController이므로 응용 프로그램의 rootViewController 여야합니다.

+0

당신의 해결책은 맞지만 디자인에 대해 다시 생각하지 않습니다. 그가하려는 일은 절대적으로 논리적입니다. 많은 상황에서 제안 된 솔루션이 작동하지 않습니다. 우리는 같은 디자인을 사용합니다 - 우리 자신의 화면 전환 메커니즘과 우리 자신의 분할보기 컨트롤러를 작성합니다 (정말 쉽습니다). – Sulthan

+1

당신의 대답 Ben-G에 감사드립니다. 내가 [appDelegate.window setRootViewController : splitViewController]하려고 할 때; [splitViewController presentViewController : splitViewController animated : 예 완료 : NULL]; '애플리케이션이 분할 뷰 컨트롤러를 모달 '으로 표시하려고했습니다. '오류가 발생합니다. 내가 어딘가 잘못된 구문을 사용하고있는 것 같아요? 나는 내가 한 디자인 결정에 관해 @Sulthan에 동의하지만 제안에 감사한다. – glenstorey

+0

[link] (http://stackoverflow.com/questions/2579861/split-view-controller-must-be-root-view-controller)에 대해서는 SplitViewController가 특별한 경우이며 모달로 표시 할 수 없습니다. 불행히도 대안 솔루션을 사용하거나 splitViewController에 전달되는 메시지를 직접 처리하는'transitionFromView : toView :'메소드를 사용해야합니다. –

관련 문제