日期: 2011 年 9 月 29 日

iPad程序不能正常翻转显示的问题

最近做了一个星点调查的iPad客户端程序,提交App Store审核之后被打回了,说程序只支持纵向显示,在用户翻转之后(即Home键在上面时)也应该能正常显示。

我想只要在shouldAutorotateToInterfaceOrientation方法里加上反向的支持就可以了,即

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

但是修改之后,发一些页面没有问题,但有些页面还是不能正常显示,有些情况下翻转屏幕有效,有些情况下不行,我百思不得其解,搜索了大量资料(大多是英文的,中文的几乎没有),但也没有完全能解释清楚的,我只能不算试错,发现似乎是UINavigationController默认情况下不能支持UIInterfaceOrientationPortraitUpsideDown,网上的资料也好像提到这个原因,我仔细检查了一下,我的UINavigationController用法似乎不太对,于是我新建一个类,继承自UINavigationController,重写其shouldAutorotateToInterfaceOrientation方法,使其支持UIInterfaceOrientationPortraitUpsideDown,试了一下,果然好了:)