UINavigationBar的transitionFromViewController期间跳跃20

2019-08-16 20:58发布

在试图尝试使用苹果的UIViewController围堵我曾经遇到过一个问题,动画2个UIViewControllers之间的过渡。

这里是设置了...我创建了一个的UITabBarController和一个选项卡中,我创建一个UIViewController作为容器。 该视图控制器管理一个UIViewController和一个UINavigationController之间的过渡。 在之前的看法是:

当Next按钮被点击的视图开始它的与flipFromRight过渡的过渡。 在转换期间,导航栏是在“到”视图,但位于20pixels向下从视图的顶部边缘。 如下图:

绿色是容器视图的背景颜色。 一旦新的视图完成过渡,导航栏捕捉到视图的顶部,最终的结果是:

在地方抢购的时间是独立动画的持续时间。 我达到我想要的最终状态,但过渡是一个问题。

我已经仪表的生命周期的viewController和导航栏和UITableView中的帧作为XIB规定。 厦门国际银行将看起来像这样:

下面是代码:

在-viewDidLoad -

_fromVC = [[FromVC alloc] initWithNibName:@"FromVC" bundle:nil delegate:self];

[self addChildViewController:_fromVC];
[self.view addSubview:_fromVC.view];
[_fromVC didMoveToParentViewController:self];

在我的按钮处理程序 -

- (void)buttonSelected

{

//
//  Create the "to" View controller
//
ToVC *toVC = [[ToVC alloc] initWithNibName:@"ToVC" bundle:nil];

//
//  Create the navigation controller for the study activity
//
_toNavCon = [[UINavigationController alloc] initWithRootViewController:toVC];

[self addChildViewController:_toNavCon];
[_fromVC willMoveToParentViewController:nil];

[self transitionFromViewController:_fromVC
                  toViewController:_toNavCon
                          duration:0.7
                           options:UIViewAnimationOptionTransitionFlipFromRight
                        animations:nil
                        completion:^(BOOL finished) {
                            [_fromVC removeFromParentViewController];
                            [_toNavCon didMoveToParentViewController:self];
                        }];

}

有在“到”视图控制器没有代码,改变视图控制器的外观。

另外一个信息位......当我“切换在呼叫状态栏”中的模拟器在导航栏上的差距是实现通话状态栏的高度。

我已经看过网络上的一切并没有什么帮助。 有没有人看到这一点,已经有人定了吗?

Answer 1:

我没有找到答案! 子类的UINavigationController和覆盖

- (BOOL)wantsFullScreenLayout{

  return NO;

}

显然,UINavigationController的和UITabController总是希望全屏(默认是) - 调整状态栏 - 你可以不设置此属性的任何其他方式。 它已经为我工作。



文章来源: UINavigationBar jumps 20pixels during transitionFromViewController