我的容器控制器的方向有问题。
在控制器之间切换时,前一个控制器倾向于保持在您切换回来时停止的任何方向。
首先,我用来重现的步骤:
- 当容器控制器出现时,我旋转到横向。此时,风景中的一切看起来都很好。
- 通过分段控制切换到子控制器#2。
- 在此视图中旋转回横向。一切看起来仍然正常。
- 切换回子控制器 #1。
在 ContainerController 的 viewDidLoad 中:
self.child1 = [self.storyboard instantiateViewControllerWithIdentifier:@"first"];
self.child2 = [self.storyboard instantiateViewControllerWithIdentifier:@"second"];
[self addChildViewController:self.child1];
[self addChildViewController:self.child2];
[self.view addSubview:self.child1.view];
我如何转换子控制器:
- (IBAction)segmentChanged:(id)sender
{
UIViewController *toVc, *fromVc;
UISegmentedControl *segment = sender;
if (segment.selectedSegmentIndex == 0)
{
toVc = self.child1;
fromVc = self.child2;
}
else
{
toVc = self.child2;
fromVc = self.child1;
}
[toVc willMoveToParentViewController:self];
[self transitionFromViewController:fromVc
toViewController:toVc
duration:0.0
options:UIViewAnimationOptionTransitionNone
animations:nil
completion:^(BOOL finished){
[toVc didMoveToParentViewController:self];
}];
}
我曾假设 transitionFromViewController 会自动处理所有这些。有谁知道我做错了什么?