2

別のviewcontroller(1)とsplitviewcontroller(2)がaddchildviewcontrollerメソッドを介して切り替えを行うUIViewControllerが1つあります。そのため、splitviewcontroller を追加すると、正しい回転が処理されません。動画をご覧ください – https://dl.dropbox.com/u/2139277/IMG_0180.MOV .

切り替えを行うコードは次のとおりです。

- (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;
                            }];
}
4

1 に答える 1

0

私の知る限り、UISplitViewController はウィンドウのルート ビュー コントローラーでなければなりません。子ビュー コントローラーとして追加することはサポートされていません。

于 2012-12-13T18:16:36.553 に答える