我的iPhone应用程序(使用swift构建)中使用Xcode 6.1构建了两个 View Controller ,并使用 Storyboard 。

第一个 View Controller 嵌入在 Storyboard 中的导航 Controller 中,第二个 View Controller 的设置为“显示”设置。

当应用程序运行时,它在iOS 8.x中正确地将过渡显示为推送,但是在iOS 7.x中,它作为模式显示而没有导航栏。

我的应用程序要求是将过渡显示为推送,无论是iOS 7还是iOS8。是否有任何想法可以在两个版本的iOS中将其作为推送工作?

我在相关文章中提到了此问题,但找不到该问题的解决方案:Adaptive segue in storyboard Xcode 6. Is push deprecated?

任何帮助表示赞赏...

谢谢

最佳答案


  • 它包括一种检查和验证问题
  • 的方法
  • 问题的原因可追溯到源(segue类型的更改)
  • 解决方案非常简单(删除并重新创建新的序列)
  • 请注意文字
  • 中的要求

    我只是提供了一个very detailed SO answer,它可以完全解释正在发生的事情以及原因,但是简单的解决方案是您可以删除未推送的Segue,然后在 Storyboard 中重新创建它。原因是segue中的xml可能断点了(例如,请参阅扩展的答案/有关如何确认此问题的说明)。

    确认在 View 层次结构中至少有一个UINavigationController之后,请确保该序列不是手动序列,并且没有与之关联的操作(通过将 Storyboard上的序列作为源代码查看)。删除现有的segue,然后从UIView/UIControl按住Ctrl并将其拖动到目标 View Controller ,如果需要自定义操作,请在 prepareForSegue 中拦截对目标 Controller 的调用。


  • 确认您的初始 View Controller (带有箭头)是
    UINavigationController并具有正常的内容 View
    Controller ,因为它是根 View Controller 。 (或者您将自己的
    UINavigationController内部的初始 View Controller )
  • 请阅读我对一个非常相似的问题的早期评论的扩展注释(上面链接)。
  • 关于ios - Xcode 6中的“Show” segue在iOS 7中将viewcontroller呈现为模态,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26649180/

    10-10 23:25
    查看更多