2013-06-25 1 views
3

UIView의 하위 클래스에 하위 뷰가 있습니다. 장치가 회전하면 하위 뷰를 제거합니다. 이것은 내 코드입니다UIDevice의 beginGeneratingDeviceOrientationNotifications가 제대로 작동하지 않습니다.

- (void)awakeFromNib 
{ 
    [[UIDevice currentDevice] beginGeneratingDeviceOrientationNotifications]; 

    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(orientationChanged) name:UIDeviceOrientationDidChangeNotification object:nil]; 

} 

- (void)orientationChanged 
{ 
    [subview removeFromSuperview]; 
} 

내 문제는 장치가 약간 기울어 지거나 하위보기가 제거되는 테이블을 올려 놓는 경우에도 마찬가지입니다. 이것을 막기 위해 무엇을 할 수 있습니까?

+0

앱이 여러 인터페이스 방향을 지원합니까? –

+0

그렇습니다 ... –

답변

6

장치 방향을 추적하지 마십시오. 인터페이스 방향을 추적하십시오. UIDeviceOrientationDidChangeNotification 대신 UIApplicationWillChangeStatusBarOrientationNotification을 사용하고 알림의 userInfo에서 새 인터페이스 방향을 얻으십시오. 인터페이스 방향을 추적하는 경우 beginGeneratingDeviceOrientationNotifications을 수행 할 필요가 없습니다.

+0

대단히 감사합니다, 퍼펙트! –

+0

이 전화를 강제하는 방법이 있습니까? Portrait에 대한 뷰의 버전이 있는데, 세로로 표시 할 때 표시해야하지만 기본값은 가로로 표시되는 것입니다 ... – LightningStryk

관련 문제