Xcode 4.5.2에서 iPad 용 iOS6을 대상으로 스토리 보드 및 하위보기를 사용하고 있습니다. Preamble : 내 루트 컨트롤러 (앱 대리인이로드)는 이미지, 업그레이드 버튼 및 열린 버튼 만있는 스플래시 화면입니다. 앱을로드하는 데 몇 초가 걸립니다. 내 모든 3 개의 전체 화면 컨트롤러에서 shouldAutorotate 및 supportedInterfaceOrientations 있습니다. 회전 알림을 위해 루트보기 컨트롤러에서 다음 두 가지 방법을 사용하고 있습니다.첫 번째보기 (스플래시)에서 첫 번째보기로 회전 문제가 발생합니다.
- (void)awakeFromNib
{
[UIDevice.currentDevice beginGeneratingDeviceOrientationNotifications];
[NSNotificationCenter.defaultCenter addObserver:self
selector:@selector(orientationChanged:)
name:UIDeviceOrientationDidChangeNotification
object:nil];
}
- (void)orientationChanged:(NSNotification *)notification
{
UIDeviceOrientation deviceOrientation = [UIDevice currentDevice].orientation;
if (UIDeviceOrientationIsLandscape(deviceOrientation))
{
// Landscape
CGRect rect = _libraryViewController.libraryTableBorder.frame;
_libraryViewController.libraryTableBorder.frame = rect;
_libraryViewController.libraryTableBorder.image = [UIImage imageNamed:@"LibraryBorder_L.png"];
}
else if (UIDeviceOrientationIsPortrait(deviceOrientation))
{
// Portrait
CGRect rect = _libraryViewController.libraryTableBorder.frame;
_libraryViewController.libraryTableBorder.frame = rect;
_libraryViewController.libraryTableBorder.image = [UIImage imageNamed:@"LibraryBorder_P.png"];
}
}
나는 LibraryViewController에서 이러한 매우 동일한 메소드를 가지고 있으며 완벽하게 작동합니다. 내가 libraryTableBorder에 대한 호출없이 동일한 메서드를 가지고 또 다른 메인보기 컨트롤러 (entryView) 있습니다. 엔트리 뷰에서 회전하는 장치가 어떤 회전을 하든지 테이블 경계가 올바르게 바뀝니다. 라이브러리에서 entryView 또는 스플래시로 이동할 때보기가 정확합니다.
문제는 프리 스플래시보기에서 라이브러리로 이동하는 중입니다. Potrait의 도서관으로 가면 잘 나타나고 표시되는 경계선이 세로 테두리입니다. 그러나 가로 방향에서는 세로 테두리도 표시됩니다. 랜드 스케이프에있을 때 루트보기에서 들어올 때 라이브러리 테두리를 가로로 표시하려면 어떻게합니까?
이 수수께끼를 푸는 데 도움이되는 것이 있으면 매우 감사하겠습니다.