// Fetch the status bar from the app and set its orientation as required.
[[UIApplication sharedApplication] setStatusBarOrientation:UIInterfaceOrientationPortrait animated:YES];
// Create an empty view controller, present it modally and remove it directly afterwards
UIViewController *mVC = [[UIViewController alloc] init];
[self presentModalViewController:mVC animated:NO];
[self dismissModalViewControllerAnimated:NO];
// Now the device is rotated to the desired orientation. Go from there.
1条答案
按热度按时间t98cgbkg1#
这有两个方面:1.如何根据需要锁定每个视图控制器的方向。
但这本身并不能旋转设备。当你在纵向和下一个视图控制器显示为横向,那么它仍然会在纵向。你可以把设备转到portait和conroller将相应地旋转。一旦在横向它是固定在横向,不能再旋转。当你回到你的纵向控制器,它将在横向...
所以,2.你需要旋转设备。
蓬特1很简单
在固定为纵向的所有控制器中实现此功能:
并为景观控制器实现这一点:
**2.下一步你需要使用一个技巧。**你不能通过编程来转动设备。唯一的方法是旋转状态栏。之后,下一个模态(!)视图控制器以新的方向显示。这不适用于将控制器推送到导航堆栈上。技巧是显示任何(空)视图控制器,并立即将其删除。现在设备已旋转,您可以将视图控制器推送到堆栈中。这是代码,我前几天使用过:
如果您使用的是模态视图控制器,那么它当然要简单一些。