2012-05-12 113 views
1

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

+0

的'显示UIViewController'模态不正常地“告诉”关于旋转的呈现控制器。旋转是自动处理的,只要'-shouldAutorotateToInterfaceOrientation:'返回'YES',即使当前没有显示控制器。你在使用'UINavigationController'吗?如果堆栈中的任何视图控制器不支持自动旋转,则视图不会旋转。在任何情况下,尽管可以使用黑客来强制轮换,但最好的办法是解决潜在的问题,但是没有更多的细节,很难分清哪里出了问题。 – modocache

回答

1

使用NSNotification。

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

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

An old SO answer explaining the sytntax for NSNotification

我希望它有用

+0

但是我会以什么名字?什么会触发它来实现它? – Andrew

+0

使用任何名称,如果其在NOTICE和观察者中相同,则会触发 – zahreelay

相关问题