2010-11-24 5 views
6

UINavigationController 또는 UITabBarController과 같은 고유 한 컨테이너보기 컨트롤러를 만들고 싶습니다. 문서 작성자는 그렇게하지 말아야한다고 말하지만 이유는 무엇입니까? 탐색 및 탭바 컨테이너는 그러한 것이 가능하고 실제로 잘 작동하는 좋은 예입니다. 또한 iPhone에는 작은 화면이 있으며 사람들은 탐색 버튼 등으로 화면을 망가지지 않아야 함을 이해합니다.하지만 iPad에서는 공간이 많이 있고 많은보기 컨트롤러로 분할하여 큰 기회를 제공합니다.맞춤 컨테이너보기 컨트롤러

애플이 아직 그러한 API를 추가하지 않았다는 느낌이 들지만, 그렇습니다. 며칠 전에 iPad 관련 컨트롤러 (예, 컨테이너 용)에 대한 문서를 추가했으며 텍스트를 덜 복잡한 것으로 수정했습니다.

어쨌든 ... 한 화면에서 두 개 이상의보기 컨트롤러를 사용하려고하면 어떤 문제가 발생할 수 있습니까? 그 중 하나만 오리 엔테이션 변경이나 메모리 부족 경고와 같은 이벤트를받을 것이므로이 이벤트를 포함 된 VC에 전달해야합니다. iOS의 향후 버전과의 호환성에 대해 우려하고 있습니다. 새 이벤트를 추가하게되면 포함 된 VC가 UIViewController에서 상속 된 기본 동작을 실행하지 않습니다. 다른 건 없니? 내 앱이 애플에 의해 거부 될 수 있다고 생각합니까? 어쩌면 모든 VC에 많은 코드를 복사하지 않고도 각 화면에서 일부 뷰 요소를 영구 유지할 수있는 다른 방법이 있을까요?

미리 감사드립니다.

답변

2

하위 클래스 UINavigationController 또는 UITabBarController는 장치 회전 문제를 처리하는 훌륭한 방법이지만 여러보기 컨트롤러에서 하위 뷰를 공유하는 방법을 사용하지 않는 것이 좋습니다.

어쩌면 UIViewController를 서브 클래 싱하는 것이 당신이 원하는 것입니다. 그런 다음 뷰가로드되면 펜촉에서 공유 뷰를로드하고 UIViewController 하위 클래스의 콘센트를 정의하고 이벤트를 처리하기위한 하위 코드에 지원 코드를 추가 할 수 있습니다. 내 자신의보기 컨트롤러에 표시 할 수 있도록 상태 업데이트 메시지를 추가하기 위해이 작업을 직접 수행했습니다.

+0

동의합니다. Apple이 사용자 지정 컨테이너 컨트롤러를 작성해서는 안된다고 말하는 것이 아닙니다. UINavigationController 및 UITabBarController는 실제로 서브 클래 싱 될 수 있도록 구축되지 않았으며 시도 할 때 결과가 홀수가 될 수 있습니다. –

+0

기본적으로 autorotation을 사용하는 앱에서 하위 작업을 서브 클래 싱해야하며, 하위 클래스는 하위 클래스로 분류되지 않도록 경고하지 않지만 자신이하려는 일을 수행 할 필요가 없다고 생각합니다. – spstanley

+0

예, 두 개의 VC가있을 수 있습니다. 나는 테스트를 수행하고 화면을 두 부분으로 나누었습니다. 각 부분의 버튼은 다른 VC에 의해 처리되었습니다. 애니메이션 등을 포함하여 모든 것이 정상적으로 작동했습니다. 부작용이 두려운 것 같습니다. 애플은 왜 한 화면에 여러 개의 VC를 사용할 수 없는지 이유가 있어야한다. 이벤트가 문제가 될 수 있지만 문제를 해결할 수 있다고 생각합니다. 다른 문제가 있는지 궁금합니다. – broot

관련 문제