以纵向和横向初始化 UIViewController

Posted

技术标签:

【中文标题】以纵向和横向初始化 UIViewController【英文标题】:init a UIViewController in portrait and landscape 【发布时间】:2012-03-02 00:17:58 【问题描述】:

我有一个带有 xib 的 UIViewController,当我分配它时,UIViewController 的视图和宽度不会随着我所处的方向而调整,它总是设置为纵向。即使我在风景。为什么是这样?这是我初始化它的方式:

PNRWebViewController *wvController = [[PNRWebViewController alloc] initWithNibName:@"PNRWebViewController" bundle:nil];

    [self.view addSubview:self.webViewController_.view];

【问题讨论】:

您在 IB 文件中设置的自动调整大小属性是什么? (红色箭头)我怀疑你的问题可能在那里。 如果您在 IB 中选择一个视图并转到 Xcode 右侧面板中的“标尺”选项卡,您将看到它。我也会看看 coneybeare 的答案,那里有很好的信息。 【参考方案1】:

发生这种情况的原因有很多。查看有关该主题的官方 Apple 问答指南:

Why won't my UIViewController rotate with the device?

视图控制器没有实现这个委托方法: (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation;

视图控制器的 UIView 属性嵌入在 UIWindow 中,但旁边还有一个额外的视图控制器。

您已将视图控制器的 UIView 属性作为子视图添加到 UIWindow,但很快就过早地释放了它。

您的 UITabBarController 或 UINavigationController 中的所有子视图控制器不同意共同的方向集。

在不调用 super 的情况下覆盖 -(id)init:-(id)initWithNibName:(NSString *)nibName bundle:(NSBundle *)nibBundle 方法。

【讨论】:

以上是关于以纵向和横向初始化 UIViewController的主要内容,如果未能解决你的问题,请参考以下文章

oracle中如何把纵向数据以横向方式展现,谢谢指点

如何创建一个同时支持横向和纵向但不在它们之间旋转的视图控制器(保持其初始方向)

以纵向拍摄的照片正在以横向保存

仅以纵向启动应用程序

在 phonegap 应用程序中以编程方式设置纵向或横向

自动布局可以调整 UITableView 的大小以在 ipad 上纵向增长和横向缩小吗?