2009-09-16 3 views
3

내 iPhone 응용 프로그램에서 사용자가 응용 프로그램에 대한 설정을 편집 할 수있는보기 (및 해당보기 컨트롤러)가 있습니다. 이 뷰는 메뉴 (테이블 뷰)를 통해 액세스 할 수 있습니다. 내 UIViewController 하위 클래스에 pushViewController를 사용하여 표시합니다. 내가 이것을 할 때, 그것은 내가 예상했던 것처럼 나타난다 - nav 막대기는 xib의 최상부에 나타난다. 그리고 내가 xib에서 거기에서 떠났던 빈 공간은 점령 당한다.UINavigationController보기와 모달보기에서 동일한 xib를 사용하는 것이 좋습니다?

때로는 설정보기가 presentModalViewController를 사용하여 모달보기로 표시됩니다. 이렇게하면 xib 상단이 탐색 막대 아래쪽이 아닌 하단에서 시작됩니다.

설명서에는 presentModalViewController가보기에 맞게 크기가 조절된다고 나와 있습니다. 따라서 예상되는 동작임을 알 수 있습니다. 그러나 나를 위해, 그것은 바람직한 행동이 아닙니다.

설정보기 컨트롤러를 설정하여 탐색 모음을 표시하지 않도록 할 수 있지만보기 상단에 이상한 빈 공간이 있습니다.

이상적으로 두 가지 상황에서 동일한 xib를 사용하고 싶습니다. 그러나, 그것은 아마도 모범 사례가 아닙니다. 당신은 보통 어떻게 xib를 재사용합니까?

모달 모드에서보기 컨트롤러가 모든 컨트롤러를 위로 이동시킬 수 있다고 생각했지만 사용 가능한 경우 더 나은 것을 원합니다.

답변

1

각 UIView에는 autoresizingMask 속성이 있습니다. 이것을 설정하면 (인터페이스 빌더에서 수행 할 수 있음),보기를 재사용 할 수 있어야하며, 탐색 막대가 없을 때 전체 화면을 차지하도록 자동으로 크기를 조정할 수 있어야합니다. 뷰 컨트롤러 스택에서로드 할 때 때 모달 뷰와 쇼 -

http://developer.apple.com/iPhone/library/documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/WindowsandViews/WindowsandViews.html#//apple_ref/doc/uid/TP40007072-CH8-SW10

+0

글쎄,이 경우, 탐색 모음이 두 경우에 나타납니다

애플의 문서는 여기에있다. 두 번째 경우에는 자동 크기 조정 마스크의 맨 위에 "스트럿"이 있는지 여부에 관계없이 컨트롤이 자동으로 탐색 모음의 계정으로 이동합니다. 그러나 layoutSubviews에 대해 알아두면 좋을 것입니다. – Jim

관련 문제