我正在制作iPhone应用程序,我需要它处于纵向模式,因此如果用户侧向移动设备,它不会自动旋转。我怎么能这样做?
答案 0 :(得分:51)
要为特定的视图控制器禁用方向,您现在应该覆盖supportedInterfaceOrientations
和preferredInterfaceOrientationForPresentation
。
- (NSUInteger) supportedInterfaceOrientations {
// Return a bitmask of supported orientations. If you need more,
// use bitwise or (see the commented return).
return UIInterfaceOrientationMaskPortrait;
// return UIInterfaceOrientationMaskPortrait | UIInterfaceOrientationMaskPortraitUpsideDown;
}
- (UIInterfaceOrientation) preferredInterfaceOrientationForPresentation {
// Return the orientation you'd prefer - this is what it launches to. The
// user can still rotate. You don't have to implement this method, in which
// case it launches in the current orientation
return UIInterfaceOrientationPortrait;
}
如果您的目标是iOS 6之前的版本,则需要使用shouldAutorotateToInterfaceOrientation:
方法。通过更改何时返回yes,您将确定它是否将旋转到所述方向。这只会允许正常的纵向方向。
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
// Return YES for supported orientations
return (interfaceOrientation == UIInterfaceOrientationPortrait);
// Use this to allow upside down as well
//return (interfaceOrientation == UIInterfaceOrientationPortrait || interfaceOrientation == UIInterfaceOrientationPortraitUpsideDown);
}
请注意,iOS 6.0中已弃用shouldAutorotateToInterfaceOrientation:
。
答案 1 :(得分:38)
答案 2 :(得分:28)
对于那些错过它的人:您可以使用项目设置屏幕来修复整个应用程序的方向(无需覆盖每个控制器中的方法):
就像切换支持的界面方向一样简单。您可以点击左侧面板中的项目>应用目标>摘要标签。
答案 3 :(得分:1)
Swift 3 如果您有一个navigationController,则将其子类化为此类(仅限肖像):
$sql->bind_param("si",$newname,$user_id);
答案 4 :(得分:1)
如果要为 iPhone和iPad 禁用横向方向。
转到目标,然后转到常规标签。请参见下面的屏幕,并取消选择左侧景观和右侧景观。
在这种情况下,仅iPhone横向模式将被禁用,而不是iPad。 对于iPad,所有模式都可用。如果要从Universal到iPad选择设备选项。它看起来像这样。参见以下屏幕。
现在,您需要取消选择iPad上除<人像>人像以外的所有模式。请参见下面的屏幕截图。
现在,您已成功所有设备禁用了除人像以外的所有模式。
答案 5 :(得分:0)
从您的班级中删除方法shouldAutorotateToInterfaceOrientation
也完全有效。如果你不打算旋转,那么在你的课程中使用这个方法是没有意义的,代码越少越好,保持干净。
答案 6 :(得分:0)
答案 7 :(得分:0)
适用于iPhone和iPad的最简单解决方案(通用)-在 info.plist 文件或 Project-> Info-> Custom iOS Target Properties 中删除不必要的方向
只需从列表中添加或删除定位项:
答案 8 :(得分:0)