2012-04-29 4 views
0

세 개의 뷰 컨트롤러가 모두 탐색 스택에 있습니다. 첫 번째 뷰 컨트롤러는 uitoolbar를 사용하지 않고 두 번째 컨트롤러는 사용하지 않으며 세 번째 컨트롤러는 사용하지 않습니다.uitoolbar를 숨기면 상단에 틈새가 생깁니다.

문제는 두 번째 UIViewController에서 세 번째 UITableViewController로 이동하면 도구 모음을 숨기면 화면 상단에 흰색 틈이 있다는 것입니다.

여기 사진입니다 :

gap at top

나는 현재 두 번째 뷰 컨트롤러의 viewWillDisappear에 [self.navigationController setToolbarHidden:YES animated:YES]; 을 가지고 있지만 나 또한 세 번째 뷰 컨트롤러의 viewWillAppear 방법에 넣어했습니다. 둘 다 갭을 표시합니다.

어떻게 해결할 수 있습니까?

+0

언제 툴바를 숨기고 있습니까? 푸시 전후에, 그리고 어떤 방법으로? – CodaFi

+0

질문에 대한 대답을 업데이트했습니다. – ladookie

답변

0

우선, setToolbarHidden:YES animated:NO을 사용하여 툴바없이 새 UIViewController를 표시하는 것이 좋습니다. 나는 당신의 방법이 처음에는 그것을 보여줄 것이라고 생각한다. 그러면 그것은 사라진다. animated:NO을 사용하거나 animated:없이 메서드 서명을 사용하는 경우 새 UIViewController는 세 번째 UIViewController가 화면에 푸시 될 때 두 번째 UIViewController에 대한 UIToolbar를 "푸시"해야합니다.

두 번째로 인터페이스 빌더에서 UIViewController의 뷰에 대한 충격과 스트럿을보아야 할 것입니다. 이것이 바로 이러한 격차의 원인입니다. 고정 된 위쪽 및 아래쪽 여백과 유연한 높이를 원할 수 있습니다.

+0

테이블 뷰의 스트럿은 화면의 위, 아래, 왼쪽 및 오른쪽에 연결됩니다. – ladookie

+0

가변 높이가 있습니까? 즉, 위 아래로 뾰족한 화살이 클릭 되었습니까? 아닙니다. – mbm29414

+0

예. 이 UITableViewController이며 그것을 어쨌든 변경할 수 없습니다. – ladookie

0

나는 내 자신의 질문에 답할 것이지만, 해커이기 때문에 받아들이지 않을 것입니다.

내가있는 viewDidLoad의 시작 부분에 코드 줄을 추가하여 문제를 해결할 수 있었다 : I는 전체 화면의 크기보다 13 픽셀 더 큰 일 할 수있는 tableview 프레임의 높이를 설정 기본적으로

[self.tableView setFrame: CGRectMake(0, 0, 320, 493)]; 

(320 x 480)입니다.

+0

이것이 단기간에 효과가 있을지 모르지만, 당신이 풍경이나 iPad 등의 다른 앱에 대해 동일한 기능을 필요로 할 수 있으므로 우아하게하는 방법을 이해하는 것이 더 낫다는 것을 믿어주십시오. – mbm29414

관련 문제