Trước iOS 8, chúng tôi đã sử dụng mã bên dưới kết hợp với các phương thức ủy nhiệm được hỗ trợInterfaceOrientations và ShouldAutoRotate để buộc định hướng ứng dụng theo bất kỳ hướng cụ thể nào. Tôi đã sử dụng đoạn mã dưới đây để lập trình xoay ứng dụng theo hướng mong muốn. Thứ nhất, tôi đang thay đổi hướng thanh trạng thái. Và sau đó chỉ cần trình bày và ngay lập tức loại bỏ một chế độ xem phương thức xoay chế độ xem theo hướng mong muốn.
[[UIApplication sharedApplication] setStatusBarOrientation:UIInterfaceOrientationLandscapeRight animated:YES];
UIViewController *c = [[UIViewController alloc]init];
[self presentViewController:vc animated:NO completion:nil];
[self dismissViewControllerAnimated:NO completion:nil];
Nhưng điều này không thành công trong iOS 8. Ngoài ra, tôi đã thấy một số câu trả lời trong stack stack, nơi mọi người đề nghị rằng chúng ta nên luôn luôn tránh cách tiếp cận này từ iOS 8 trở đi.
Cụ thể hơn, ứng dụng của tôi là một loại ứng dụng phổ quát. Có ba bộ điều khiển trong tổng số.
Bộ điều khiển Chế độ xem Đầu tiên - Nó sẽ hỗ trợ tất cả các định hướng trong iPad và chỉ chân dung (nút home trở xuống) trong iPhone.
Bộ điều khiển Chế độ xem Thứ hai - Nó chỉ hỗ trợ cảnh quan ngay trong mọi điều kiện
Bộ điều khiển Chế độ xem Thứ ba - Nó chỉ hỗ trợ cảnh quan ngay trong mọi điều kiện
Chúng tôi đang sử dụng bộ điều khiển điều hướng để điều hướng trang. Từ trình điều khiển chế độ xem đầu tiên, trên hành động nhấp vào nút, chúng tôi sẽ đẩy nút thứ hai lên ngăn xếp. Vì vậy, khi bộ điều khiển chế độ xem thứ hai xuất hiện, bất kể hướng của thiết bị, ứng dụng chỉ nên khóa theo chiều ngang.
Dưới đây là của tôi shouldAutorotate
và supportedInterfaceOrientations
phương thức trong bộ điều khiển xem thứ hai và thứ ba.
-(NSUInteger)supportedInterfaceOrientations{
return UIInterfaceOrientationMaskLandscapeRight;
}
-(BOOL)shouldAutorotate {
return NO;
}
Có giải pháp nào cho việc này hay bất kỳ cách nào tốt hơn để khóa bộ điều khiển xem theo hướng cụ thể cho iOS 8. Xin hãy giúp đỡ !!