2015-07-21 69 views
3

我们试图在两个视图之间的应用程序中添加交互式转换。我们可以使其在iOS 7或iOS 8 上正常工作,而不显示导航栏。但是,我们需要显示一个导航栏。为了演示(一些)我们遇到的问题,我创建了一个小的原型,其屏幕截图如下所示。我尝试过UIPercentDrivenInteractiveTransition,但发现有足够的帖子声称它有我摆脱它的问题。iOS 8 +交互式过渡+导航栏显示=已损坏?

来源https://github.com/xaphod/TransitionBugger

下面是它看起来像在iOS 8,具有navigationController,但导航栏设置不要在故事板显示:它工作正常

Works on iOS 8 without navbar

下面是完全一样的东西,但显示导航栏。当有一个导航栏,然后以某种方式有没有在toViewcontroller收到触摸过渡完成后(注意UIButton的怎么没有得到一个触摸事件):

Broken on iOS 8 with navbar

也许能说明问题的是,出现的导航栏处于破碎状态。观察如果我为应用程序创建背景并重新进入应用程序会发生什么 - 导航栏状态发生变化:仅当应用程序到达前台时,“项目”栏按钮才会更改为“返回”。为什么会发生?

navbar changes when app backgrounded

我已经阅读计算器至少12个职位,objc.io,和其他地方有很多建议的解决方案和教程等,我们把它们都试过,包括这些线程:

"From View Controller" disappears using UIViewControllerContextTransitioning(我们的主要应用是有另外一个问题)

Touches not recognized after custom transition

...但他们只当没有导航栏显示工作n

我们如何使iOS 8上的导航栏与交互式转换工作?所有帮助非常感谢。

回答

0

我们最终不再使用UINavigationControllerDelegate方法,因为我们还需要转换视图来覆盖标签栏。当我们转向模态全屏转换方法时,这个问题就解决了。