【问题标题】:Device orientation with UINavigationController使用 UINavigationController 的设备方向
【发布时间】:2023-10-03 06:04:01
【问题描述】:

我正在使用函数将只需要 2 个视图的应用程序将 shouldAutorotateToInterfaceOrientation 纵向视图更新为横向视图。 该项目正在使用 UINavigationController,因此如果我希望将旋转工作从纵向到横向,我必须使用以下代码实现所有类(总共 16 个):

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
    // Return YES for supported orientations
    return YES;
}

所以现在轮换正在工作,但仅适用于所有视图!如果我只将此代码放在我需要的类上根本不起作用。

我怎样才能让旋转只对两个视图起作用?

【问题讨论】:

  • xcode 没有设备方向——它只是一个 IDE。

标签: cocoa-touch uiinterfaceorientation


【解决方案1】:

如果您不想对每个控制器都这样做,最好让这两个视图控制器观察由UIDevice 对象生成的@​​987654321@。根据通知,您可以处理旋转和布置子视图。

【讨论】:

  • 我有点不确定如何按照你的建议去做。你能举个例子吗?
  • @Ben,我知道已经有一段时间了,但无论如何我都会回复。这个想法是手动监听方向的变化,因为我们不能使用视图控制器提供的功能。让两个控制器都观察通知。收到有关方向的通知后,请自行手动更改布局。进行旋转,为子视图定义新框架。