在自定义过渡过程中,视图的导航栏项目被错位

我有一个自定义的segue使用UIViewAnimationOptionTransitionFlipFromLeft在视图之间转换。

当新视图出现在屏幕上时,由导航栏元素从左alignment状态跳转到适当位置导致短暂但可辨别的“眨眼”。 以下是转换结束时截图:

未对齐的导航栏项目
您可以看到标题和两个栏button项目左alignment; 完全不在他们最终会rest的地方。

以下是转换完成后截图的截图:

正确对齐导航栏项目
这里的button和标题正确定位。 在第一张和第二张图像之间的瞬间,图标闪烁到位。

该视图是在故事板中设置的。 该视图不是UINavigationController层次结构的一部分,因此导航栏及其项目通过属性检查器“Simulated Metrics” – >“Top Bar:半透明导航栏”在视图上手动创build。

如何强制导航栏项目在转换过程中首次出现时正确定位?

先谢谢你! 🙂

得到它了! 我发现使用transitionWithView内的[UIView performWithoutAnimation:^ {}]块解决了这个问题:

[UIView transitionWithView:src.navigationController.view duration:0.2 options:UIViewAnimationOptionTransitionFlipFromLeft animations:^{ [UIView performWithoutAnimation:^{ [navController setViewControllers:[NSArray arrayWithObject:dst] animated:NO]; }]; } completion:nil];