2012-10-09 2 views
2

BUMP .. 여전히 알아 내지 못했지만 문제는 회전하지만보기가 안됩니다. 그래서 이상한. 도움을 얻으려면 더 나은 정보를 제공 할 수 있습니까?Monotouch.Dialog IOS 6 분할보기 회전 문제

이 문제가 계속 발생했습니다. 그 정말 나쁜 내가

BUMP가 .. 여기 죽어 메신저 제발! 누군가 사람이 :(도움을 해결하지 못할! :)

을 그래서, Monotouch.Dialog를 사용하여 IOS 6 이후거야, 내 splitview 컨트롤러의 회전 이상하게 행동하고있어.

실제로 회전하고 있지만 내 세부보기가 전체 화면을 차지하고 마스터보기가 화면 프레임에서 회전 한 것처럼 보입니다. 즉, 회전 한 다음 사라 졌을 때 분할보기에 대한 마스터보기를 볼 수 있으며 세부보기는 전체 화면을 사용합니다.

IOS6 이후에 ShouldAutorotate 기능을 추가하고 GetSupportedInterfaceOrientations을 설정했습니다. 회전하는 것처럼 보이지만, 뭔가 빠진 것 같습니다.

나는 IOS 5 시뮬레이터를 시험해 보았고 작동 했으므로 분명히 IOS 6 문제이다.

누구든지 문제를 찾아야하는 곳을 알고 있습니까?

EDIT : 디버깅하는 동안 내 마스터 뷰와 디테일 뷰의 ShouldAutorotate 오버라이드로 들어가는 것을 보았습니다. 내 분할 뷰 컨트롤러에서만 실행됩니다. iOS 5에서는 ShouldAutorotateToInterfaceOrientation으로 바뀝니다. 여기

내가 내 세부 정보 및 마스터 뷰에서 사용하는 코드입니다 :

public override bool ShouldAutorotate() 
    { 
     return true; 
    } 
    [Obsolete] 
    public override bool ShouldAutorotateToInterfaceOrientation  (MonoTouch.UIKit.UIInterfaceOrientation toInterfaceOrientation) 
    { 
     return true; 
    } 

그리고 여기에 난 내 SplitViewController에있는 코드 :

public override bool ShouldAutorotate() 
    { 
     return true; 
    } 

    [Obsolete] 
    public override bool ShouldAutorotateToInterfaceOrientation(UIInterfaceOrientation requested) 
    { 
     return requested == UIInterfaceOrientation.LandscapeRight || requested == UIInterfaceOrientation.LandscapeLeft; 
     //return requested == UIInterfaceOrientation.Portrait || requested == UIInterfaceOrientation.PortraitUpsideDown; 

    } 

    public override bool ShouldAutomaticallyForwardRotationMethods { 
     get { 
      return true; 
     } 
    } 

사람하십시오? 나는 나의 일을 위해 이것을 필요로하고 나는 이것을 해결할 수 없다! 어떤 아이디어라도 도움이 될 것입니다!

+0

ShouldAutoRotate가 분할보기 컨트롤러에서 호출되었지만 세부보기 및 마스터보기 컨트롤러에서는 호출되지 않은 것으로 나타났습니다. 자세히보기에는 UITableViewController를 사용하고 마스터 뷰에는 UINavigationController를 사용합니다. –

답변

0

코드 자체를 보지 않으면 무엇이 잘못되었는지를 추측하기 어렵습니다. 이전 shouldAutorotateToInterfaceOrientation: 셀렉터를 호출 할 것이기 때문에 iOS 5.x에서 작동 할 가능성이 높습니다 (그리고 애플리케이션 및/또는 MonoTouch.Dialog가 이미이를 지원했기 때문에). 하지만 당신이 교체의 구현하지 않는 한 여전히 이전 버전과의 호환성에 대한 를 호출합니다 -

는 iOS6의에서을 사용되지 않습니다. 복수 형태를 애플의 문서에서 교체, 참고 :. supportedInterfaceOrientations 및 preferredInterfaceOrientationForPresentation 방법 대신

재정의)

사용 중단 통지를 iOS6의이 이전 API 작동하지 않습니다 의미하지 않는다. 일부 새롭고 더 나은 API가 추가되었으며 이전 API 이 향후 iOS 버전에서 제거 된 일 수 있습니다 (제거는 지금까지 매우 드문 경우였습니다).

참고 : 지원하지 않는 iOS 버전에서 이전 API 사용을 중단하는 것이 좋습니다 (예 : iOS 4.0에서 비추천 된 일부 기능은 5.0 이상을 지원하는 응용 프로그램에서만 사용해야 함).그러나 5.0 및 6.0을 모두 지원하는 코드를 복제하는 경우 API는 새로운 기능 등 일부 기능을 사용하지 않는 한 좋은 아이디어가 아닙니다.

오래된 API를 사용하지 않는 새 API의 대부분은 삶을 더 쉽고 어렵게 만드는 것이 아닙니다.

+0

잘 그것은 확실히 지금 hehe를 더 단단하게 만든다. .. 그것이 회전하지 않으면, IOS6 때문에 장치는 심지어 회전하지 않을 것이다. 그것은한다. 스크린에서 디테일 뷰를 회전시킬 수있는 원인은 무엇입니까? –

+0

이 내 세부 마스터 뷰에서 사용하고 무엇을 : 공공 재정의 무효 DidRotate (UIInterfaceOrientation fromInterfaceOrientation를) \t \t { \t \t \t base.DidRotate (fromInterfaceOrientation); \t \t \t this.TableView.SelectRow (lastSelectedQuestion, false, UITableViewScrollPosition.Middle); \t \t} \t \t \t \t 공공 재정의 부울 ShouldAutorotate() \t \t { \t \t \t 반환 사실; \t \t \t \t } [폐기] \t \t 공개 오버라이드 부울 ShouldAutorotateToInterfaceOrientation (MonoTouch.UIKit.UIInterfaceOrientation toInterfaceOrientation) \t \t \t \t { \t 참을 리턴; \t \t} –

+0

이 내가 분할 뷰 컨트롤러에 있습니다 : 공공 재정의 부울 ShouldAutorotate()가 true \t \t { \t \t \t 수익을; \t \t \t \t } [폐기] \t \t 공개 오버라이드 부울 ShouldAutorotateToInterfaceOrientation (UIInterfaceOrientation 요청) \t \t는 { \t \t \t 복귀 == UIInterfaceOrientation.LandscapeRight 요청 || 요청 == UIInterfaceOrientation.LandscapeLeft; \t \t \t // 요청한 요청 == UIInterfaceOrientation.Portrait || 요청 == UIInterfaceOrientation.PortraitUpsideDown; \t \t \t \t \t} \t \t 공공 재정의 부울 ShouldAutomaticallyForwardRotationMethods { \t \t \t의 get {사실 \t \t \t \t 반환; \t \t \t \t \t –

0

window.rootViewController도 잊지 마세요 (그렇지 않으면 회전이 iPad에서 작동하지 않음).