Objective c 通过addChildViewController添加UISplitViewController
我有一个UIViewController,其中另一个viewcontroller(1)和splitviewcontroller(2)通过addchildviewcontroller方法进行切换。因此,当我添加splitviewcontroller时,它无法处理正确的旋转。看视频- 以下是进行切换的代码:Objective c 通过addChildViewController添加UISplitViewController,objective-c,layout,rotation,uisplitviewcontroller,childviewcontroller,Objective C,Layout,Rotation,Uisplitviewcontroller,Childviewcontroller,我有一个UIViewController,其中另一个viewcontroller(1)和splitviewcontroller(2)通过addchildviewcontroller方法进行切换。因此,当我添加splitviewcontroller时,它无法处理正确的旋转。看视频- 以下是进行切换的代码: - (void)transitionFromViewController:(UIViewController *)fromViewController toViewController:(UIV
- (void)transitionFromViewController:(UIViewController *)fromViewController toViewController:(UIViewController *)toViewController
{
if (fromViewController == toViewController)
return;
// animation setup
toViewController.view.frame = self.view.bounds;
// notify
[fromViewController willMoveToParentViewController:nil];
[self addChildViewController:toViewController];
// select animation direction
UIViewAnimationOptions animation = (_contentState == ContentStateViewingMap) ? UIViewAnimationOptionTransitionCurlUp : UIViewAnimationOptionTransitionCurlDown;
// transition
ContentState previousState = _contentState;
_contentState = ContentStateAnimating;
[self transitionFromViewController:fromViewController
toViewController:toViewController
duration:0.6
options:animation | UIViewAnimationOptionCurveEaseInOut
animations:nil
completion:^(BOOL finished) {
[toViewController didMoveToParentViewController:self];
[fromViewController removeFromParentViewController];
_contentState = (previousState == ContentStateViewingMap) ? ContentStateViewingList : ContentStateViewingMap;
}];
}
AFAIK UISplitViewController必须是窗口的根视图控制器。不支持将其添加为子视图控制器。也许可以添加更多详细信息,用技术术语描述问题,并更具体地解释您的问题。@mcknz问题是如何修复此闪烁,但将其添加到stotyboardStill中的tabbarcontroller时效果非常好,它不打算被这样使用,如果你坚持使用它不同于苹果设计它,那么你会发现各种各样的事情没有你可能期望的那样。苹果称之为“行为未定义”