【问题标题】:Add UISplitViewController via addChildViewController通过 addChildViewController 添加 UISplitViewController
【发布时间】:2012-12-01 16:36:39
【问题描述】:

我有一个 UIViewController,其中另一个 viewcontroller(1) 和 splitviewcontroller(2) 通过 addchildviewcontroller 方法进行切换。因此,当我添加 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;
                            }];
}

【问题讨论】:

  • 也许可以添加更多技术术语描述问题的详细信息,并更具体地解释您的问题。
  • @mcknz 问题是如何解决这个闪烁问题

标签: objective-c layout rotation uisplitviewcontroller childviewcontroller


【解决方案1】:

AFAIK UISplitViewController 必须是窗口的根视图控制器。不支持将其添加为子视图控制器。

【讨论】:

  • 但是当我将它添加到 stotyboard 中的 tabbarcontroller 时效果很好
  • 不过,它并不打算像那样使用,如果你坚持使用不同于 Apple 设计它的方式使用它,那么你会发现各种事情都不像你所期望的那样运行。 Apple 将此称为“行为未定义”。
猜你喜欢
  • 2015-11-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多