iOS 8 - App not rotating appropriately

2019-02-08 17:05发布

I have an app originally developed for iOS 7.1 that I am now testing on an iPad through Xcode 6.1. When running on an iPad running 7.1 or in the 7.1 simulator the app functions as expected. On the 8.1 iPad or 8.1 simulator, it appears as though rotation is not handled appropriately. I see the status bar at the top rotate, but the app itself does not change. I understand that this is related to rotation methods being deprecated in iOS 8. My question is... now what???

I haven't found any documentation that provides a concise answer for how to handle rotation using the new iOS 8 mechanisms. Is there any way to gracefully handle rotations in iOS 8 the same way I handled them in iOS 7? I don't even see the old rotation methods being called, so it appears as though this is more than a typical "deprecation". It seems as though they've eliminated calls to these methods altogether.

Any help or advice?

3条回答
Bombasti
2楼-- · 2019-02-08 17:38

Use viewWillTransitionToSize:withTransitionCoordinator: like so:

- (void)viewWillTransitionToSize:(CGSize)size withTransitionCoordinator:(id<UIViewControllerTransitionCoordinator>)coordinator
{
    [super viewWillTransitionToSize:size withTransitionCoordinator:coordinator];

    // Will rotate

    [coordinator animateAlongsideTransition:^(id<UIViewControllerTransitionCoordinatorContext> context) {
        // Will animate rotation
    } completion:^(id<UIViewControllerTransitionCoordinatorContext> context) {
        // Did rotate
    }];
}

You should take a look at the WWDC 2014 video "View Controller Advancements in iOS 8" where this is discussed.

查看更多
唯我独甜
3楼-- · 2019-02-08 17:40

Are you using storyboards? If so, you may have old code in your application didFinishLaunchingWithOptions method.

Try removing the following line of code and any others to do with UIWindow:

self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];

Others have said to remove lines from your plist file but that shouldn't be necessary.

查看更多
forever°为你锁心
4楼-- · 2019-02-08 17:47

I had a similar problem and I fixed it by removing the UIMainStoryboardFile and UIMainStoryboardFile~ipad keys from app's information property list

Give a look to this discussion https://devforums.apple.com/message/1064397#1064397

查看更多
登录 后发表回答