Theo như tôi biết thực hành đúng trên iOS 6 là viết mã như thế này để xử lý autorotation:Điểm của iOS 6 - (BOOL) là gì?
// iOS 6
- (BOOL)shouldAutorotate {
return YES;
}
- (NSUInteger)supportedInterfaceOrientations {
return UIInterfaceOrientationMaskPortrait;
}
Thay vì viết
// pre-iOS 6 support
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation {
BOOL retVal = UIInterfaceOrientationIsLandscape(toInterfaceOrientation);
return retVal;
}
Thành thật mà nói, tôi nghĩ rằng trước -iOS 6 rõ ràng hơn nhiều: Tôi không hiểu điểm có 2 phương pháp để xử lý autorotation, đặc biệt là vì tôi đã thấy -(BOOL) shouldAutorotate
trả về YES
trong tất cả các ví dụ. Tui bỏ lỡ điều gì vậy?
thực sự tệ hơn. UIInterfaceOrientationIsLandscape không cho tôi biết nếu giao diện trong chân dung hoặc chân dung lộn ngược. Và những gì chúng ta phải làm bây giờ khi chúng ta cần phải nói "Có, xoay nhưng chỉ khi bạn muốn xoay để chân dung"? Bây giờ tôi không thể kiểm tra 'toInterfaceOrientation' đối với UIInterfaceOrientationMaskPortrait vì nó không có trong 'shouldAutorotate' mới. – Indoor