当我正在使用的应用程序通过Ad-Hoc或通过iTunes直接安装到设备上时,首次启动时,唯一的视图控制器在我的应用程序中,响应方向更改不会接收调用shouldAutorotateToInterfaceOrientation:
并传入横向参数;调试显示它只被调用肖像。随后的每次发射都会按照我的预期进行 - 也就是说,有对shouldAutorotateToInterfaceOrientation:
的调用都会使用横向和纵向参数进行调用。这种确切的行为可以在iPhone模拟器,iPhone和iPod touch上看到。应用程序安装后首次启动时,shouldAutorotateToInterfaceOrientation不起作用
所以我的问题是:为什么第一次启动应用程序的方向通知不同于以后每次启动时的方向通知?我错误地认为除了对shouldAutorotateToInterfaceOrientation:
做出响应之外,我无法控制方位变化?
的视图控制器内的问题:
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation { return YES; }
和viewDidLoad
和viewDidUnload
里面我有(分别):
[[UIDevice currentDevice] beginGeneratingDeviceOrientationNotifications];和
[[UIDevice currentDevice] endGeneratingDeviceOrientationNotifications];
更新2010年7月6日:
仍然没有运气解决问题。我将这个问题搁置了一会儿,然后又回到了这个问题上,在完全不同的情况下我仍然看到了这个问题。任何人?
更新2010年7月13日:
从苹果公司的View Controller Programming Guide:
” ...... window对象确实有很大改变电流方向相关的工作[...]具体而言,它与视图控制器一起工作,该视图控制器的根视图最近添加到或呈现在窗口中,换句话说,窗口对象仅与显示视图的最前面的视图控制器一起工作...“
一世在第一次发布时,与之后的每次发布相比,在不同窗口添加根视图控制器的时间是不同的,所以我想也许它与此有关。我还没有追溯到这里,尽管......只是一个想法。
这个东西已经在这次更新时有大约175个视图...没有人甚至有最遥远的暗示建议?来吧,把东西扔出去。我愿意在这一点上接受任何猜测或建议。我不在乎这是愚蠢的晦涩或可能不相关。
我有各种与UI的定位问题,并看到很多报道说,它是固定在不同的版本:
我有以下变化beginGeneratingDeviceOrientationNotifications尽快解决这一点。你链接什么库?也许试试以后的库,看看是否更好。 – Andiih 2010-05-17 19:38:25
iPhone OS 3.0和链接http://i996.photobucket.com/albums/af85/jtrim/Screenshot2010-05-17at43542PM.png 我会尝试增加我的构建目标,看看它是怎么运行的 – jtrim 2010-05-17 20:37:34
你不需要在视图控制器中调用begin/endGeneratingDeviceOrientationNotifications。 shouldAutorotateToInterfaceOrientation将被调用而不这样做。 – progrmr 2010-05-17 20:51:30