我正在尝试在设备旋转后更改我的视图。我无法在正在绘制的视图中进行自动旋转支持,因为我有自定义图形出现,并且重新初始化视图要容易得多。
我遇到的问题是 using[pageViewController setViewControllers:]
似乎不想在didRotateToInterfaceOrientation
块内工作。
这是方法:
- (void) didRotateToInterfaceOrientation:(UIInterfaceOrientation)orientation {
if (UIInterfaceOrientationIsPortrait(orientation)) {
NSLog(@"%@", pageViewController.viewControllers);
isLandscape = YES;
ContentViewController *vc = [self viewControllerAtIndex:currentPage];
NSLog(@"%@", vc);
[pageViewController setViewControllers:[NSArray arrayWithObject:vc] direction:UIPageViewControllerNavigationDirectionForward animated:NO completion:nil];
NSLog(@"%@", pageViewController.viewControllers);
}
}
产生这个输出:
<ContentViewController: 0x74aa8f0>
<ContentViewController: 0xfc0cb00>
<ContentViewController: 0x74aa8f0>
是否有某种原因我不能更改此方法中的视图控制器?如果是这样,我应该在哪里进行此更改?
编辑:
我已经能够使用 绕过这个问题dispatch_async()
,但我仍然想知道为什么这是一个问题。