2013-11-28 1 views
0

저는 하나의 뷰 컨트롤러로 작업하기 위해 여러 방향을 얻으려고 노력해 왔습니다. 현재 장치 방향 및 뷰 컨트롤러를 확인합니다. 그런 다음 가로 또는 세로인지 여부에 따라 전환됩니다. 문제는 그것이 세로로 잘 작동한다는 것입니다. 그러나 풍경에있을 때마다 스택의 다른 뷰를 밀어 붙이기 때문에 뒤로 버튼은 우리가 돌아가고 자하는 실제 화면 대신 세로보기로 연결됩니다 (한 단계 더 나아가 야합니다) .스택에서 다른보기 컨트롤러를 누르지 않고 iOS 7에서 여러 화면 방향을 지원하는 방법은 무엇입니까?

if (UIDeviceOrientationIsLandscape(deviceOrientation) && 
     self.navigationController.visibleViewController == self) 
    { 
     self.landscapeViewController = 
     [self.storyboard instantiateViewControllerWithIdentifier:@"view_landscape"]; 

     [self.navigationController pushViewController:self.landscapeViewController 
              animated:NO]; 

    } 
    else if (UIDeviceOrientationIsPortrait(deviceOrientation) && 
      self.navigationController.visibleViewController == self.landscapeViewController) 
    { 
     [self.navigationController popViewControllerAnimated:NO]; 
    } 

내비게이션 컨트롤러가 관련되어 있으므로 모달 방식으로 가로보기 컨트롤러를 표시 할 수 없습니다.

또 다른 점은 각 방향 (동일한 클래스를 사용하지만 스토리 보드의 다른 식별자에 연결)에 대해 동일한보기 컨트롤러를 인스턴스화한다는 것입니다.

답변

2

당신이하려는 일은 정말로 나쁘고 사과의 방식대로 진행됩니다.

풍경 및 인물 모드에서 모두 작동하도록 단일보기를 디자인 할 수있는 Autolayout이라는 것이 있습니다.

+0

안녕을 선호 년 그냥 귀하의 요구 사항에 따라 달라집니다. 빠른 답변 주셔서 감사합니다! –

0

당신이 프로그래밍 방식으로 처리하거나 자동 레이아웃을 사용할 수있다 내가 존재 몰랐이 LINK

관련 문제