2015-01-01 3 views
0

필자는 장치를 새로운 방향으로 회전 할 때 레이아웃의 크기를 조정하거나 다시 배열하기위한 간단한 단일보기 응용 프로그램을 만들었습니다. 나는 크기 클래스와 AutoLayout을 사용하고있다.SizeClasses + AutoLayout은 시뮬레이터에서 완벽하게 작동하지만 기기에서는 작동하지 않습니까?

xcode 시뮬레이터 (테스트 한 모든 장치의 ios8)에서 레이아웃이 올바르게 변경되지만 휴대 전화에서 실행하려고하면보기가 세로로 올바르게 표시되지만 가로로 회전하지는 않습니다.

상태 표시 줄 (시간, 신호 배터리)이 화면에서 회전하지만보기가 전혀 움직이지 않습니다. 무엇이 이것을 일으킬 수 있습니까? 이 기기는 iphone 5, iOS 8.1

내가보기에 원하는 코드를 게시 해 주시면 관련성을 알려주세요.

감사합니다.

편집 : 이제 xcode를 6.1에서 6.01로 업그레이드 했으므로 시뮬레이터와 장치에 문제가 발생하여 코드에서 설정이 잘못되어 있어야합니다. 여기

앱이 인터페이스 빌더 미리보기 여기 storyboard preview.

세로 응용 프로그램이에 모습입니다. portrait

가로. landscape

보시다시피 상태 표시 줄은 회전하지만 앱 기본보기에는 표시되지 않습니다. 내 주요보기는 컨테이너 배너 데모에서 here으로 표시된 iad를 표시하는 배너보기의 하위보기입니다.

+0

안녕하세요? 시뮬레이터와 장치 모두에서 스크린 샷을 추가 할 수 있습니까? 가능한 경우 제약 조건을 설정하는 방법도 가능합니다. –

+0

@iOS_DK 답장을 보내 주셔서 감사 드리며, 몇 가지 스크린 샷을 추가하여 문제를 보여줍니다. 내 기본보기가 광고 배너 대리자의 자식 VC이기 때문에 나는 회전을 올바르게 처리하지 않아야한다고 생각합니다. 필요한 경우 init 및 rotation 처리 코드를 게시 할 수 있습니다. – TPB

답변

0

OK 그래서 나는이 대답 덕분에이 알아 낸 : iOS 8.1 auto rotation

어떤 이유 (내가 알고 싶어요 사람이 왜 답이있는 경우) 응용 프로그램에서이 라인

self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; 

을 제거 delegate applicationDidFinishLaunching 메서드가 이상한 문제를 해결합니다.

+0

특별한 필요가 없으면 일반적으로 창을 만들 필요가 없습니다. 당신이 그 필요성을 가지고 있다는 것을 모르는 경우, 당신은 그 필요성을 가지고 있지 않습니다. 이 게시물에는 함정 및/또는 추가 UIWindow를 만드는 목적에 대한 개괄적 인 개요가있는 것으로 보입니다. http://shaune.com.au/using-multiple-uiwindows-in-ios-applications/ –

+0

@BradBrighton 좋은 소식입니다. 나는 실제로 사과 가이드 [https://developer.apple.com/library/ios/samplecode/iAdSuite/Listings/ContainerBanner_ContainerBanner_BannerViewController_m.html#//apple_ref/doc/uid/DTS40010198-ContainerBanner_ContainerBanner_BannerViewController_m-DontLinkElementID_11]를 따랐습니다. 사과가 그 예제 프로젝트에서했던 것과 똑같은 방식으로 작업했기 때문에 나는 잘 돌아 갔어야한다고 생각했지만, 그 방법은 최근의 iOS 업데이트와 더 이상 호환되지 않는다고 생각합니다. – TPB

+0

밝혀졌습니다. 나는 너무 많은 일을 한꺼번에하고 부분적으로 나쁜 충고를하고 있습니다. "여러 창을 띄우는 경우"문제는 맞지만 사용자 의견을 조사하는 동안 내 자신이 동일한 창 생성 코드를 가지고 있음을 알게되었습니다. 템플릿 코드이며 너무 자주 보았습니다. 보이지 않습니다. 나에게.우연히 didFinishLaunching에 두 개의 UIWindow를 만들었습니까? (나는 더 이상 어리석은 모습을 보이지 않게하기 위해 이것을 넘어서 굴복하고있다.) –