Câu trả lời này liên quan đến các câu hỏi được hỏi trong phần bình luận của bài đăng của OP:
Để buộc một chế độ xem xuất hiện theo một định hướng nhất định, hãy đặt những điều sau vào chế độ xemWillAppear:
UIApplication* application = [UIApplication sharedApplication];
if (application.statusBarOrientation != UIInterfaceOrientationPortrait)
{
UIViewController *c = [[UIViewController alloc]init];
[self presentModalViewController:c animated:NO];
[self dismissModalViewControllerAnimated:NO];
}
Đó là một chút hack, nhưng điều này buộc UIViewController
phải được trình bày ở dạng dọc ngay cả khi bộ điều khiển trước đó là ngang
CẬP NHẬT cho iOS7
Các phương pháp trên hiện không được dùng nữa, vì vậy đối với iOS 7, hãy sử dụng các phương pháp sau:
UIApplication* application = [UIApplication sharedApplication];
if (application.statusBarOrientation != UIInterfaceOrientationPortrait)
{
UIViewController *c = [[UIViewController alloc]init];
[c.view setBackgroundColor:[UIColor redColor]];
[self.navigationController presentViewController:c animated:NO completion:^{
[self.navigationController dismissViewControllerAnimated:YES completion:^{
}];
}];
}
Điều thú vị là, tại thời điểm viết bài, hoặc là hiện tại hoặc sa thải phải được hoạt hình. Nếu cả hai đều không, thì bạn sẽ nhận được một màn hình trắng. Không hiểu tại sao điều này làm cho nó hoạt động, nhưng nó có! Hiệu ứng hình ảnh khác nhau tùy thuộc vào hoạt ảnh.