【问题标题】:UIViewController isn't aware of rotation with a modal view being shownUIViewController 不知道显示模式视图的旋转
【发布时间】:2012-05-13 07:36:08
【问题描述】:

我有一个 UIViewController,它启动一个模态视图控制器。两者都有方向支持。如果我在那里使用模态视图控制器旋转,它不会告诉它后面的视图控制器旋转已经发生,因此当模态视图控制器被关闭时,原始视图处于正确的方向,但处于原始大小(例如,我将其旋转为 480x320,文本和其他项目将是新方向的正确方式,但仍将以其 320x480 布局排列)。如何让视图控制器知道发生了旋转?

【问题讨论】:

  • 模态显示的UIViewController 通常不会“告诉”呈现控制器有关旋转的信息。如果-shouldAutorotateToInterfaceOrientation: 返回YES,则自动处理旋转,即使当前未显示控制器也是如此。您使用的是UINavigationController 吗?如果堆栈上的任何视图控制器不支持自动旋转,则视图将不会旋转。无论如何,虽然有一些技巧可以用来强制轮换,但最好的办法是解决根本问题,但如果没有更多细节,就很难判断出了什么问题。

标签: iphone objective-c ios uiviewcontroller orientation


【解决方案1】:

使用 NSNotification。

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
        {
             // send a notification here
         }

在你的 ViewController 后面,添加一个观察者并调用一个方法来修复布局。

An old SO answer explaining the sytntax for NSNotification

希望对你有用

【讨论】:

  • 但是我会用什么作为名字呢?什么会触发它让它发生?
  • 使用任意名称,如果在NOtification和observer中相同,就会触发
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-09-04
  • 2016-07-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多