【问题标题】:iOS Swift App SceneKit with UINavigationController带有 UINavigationController 的 iOS Swift App SceneKit
【发布时间】:2016-10-16 13:37:04
【问题描述】:

我目前主要使用 UIKit 在 iOS 上开发一个应用程序,它是一个信息和健康应用程序,而不是一个游戏。这是一家生产椅子的公司,所以我们计划在小视图中添加每把椅子的 3D 模型。

我设法将 3D 模型导入为 chair.dae,并使用 SCNView 显示它们。完整的应用程序是使用 Storyboard 和 Segues 构建的,并结合了 UINavigationController,因此用户可以在 NavigationBar 上来回切换。

现在的问题是,每个其他 ViewController 上的导航栏都按预期工作。 只有在添加了 SCNView 的 ViewController 上,根本没有 NavigationBar。我使用了一个普通的 ViewController,添加了一个 SCNView 并使用 Show Detail Segue 将它连接到我的导航。

另一个问题是,当我切换时,大多数视图会从屏幕右侧拉出,而这个是从底部拉出并替换所有内容

有没有办法强制它显示导航栏? 我尝试了以下,但没有改变任何东西

navigationController?.navigationBar.hidden = false

【问题讨论】:

    标签: ios uinavigationcontroller uikit scenekit


    【解决方案1】:

    这听起来像是 Show Detail 的正确行为。根据 Apple 的View Controller Programming Guide for iOS

    此 segue 使用目标视图控制器的 showDetailViewController:sender: 方法显示新内容。这种转场仅与嵌入在 UISplitViewController 对象中的视图控制器相关。有了这个 segue,一个拆分视图控制器用新的内容替换了它的第二个子视图控制器(细节控制器)。大多数其他视图控制器以模态方式呈现新内容。

    (强调添加)。

    为什么不改为表演?

    【讨论】:

    • 包含导航菜单的实际 UITableViewController 位于 ContainerView 内,并且使用 Show segue,只有一个小视图,就像每个连接的 ViewController 的 ContainerView 的大小一样。使用 Show Detail 我又恢复了正常大小。
    • 出于测试目的,我将其切换为 Show,它保持不变,然后我完全删除了 Segue,添加了一个新的 Show segue,然后它就可以工作了。现在唯一的问题,我的界面编辑器中只有一个很小的 ​​ViewController
    • 可能是与 SceneKit 无关的自动布局错误。换上纯色的 UIView 并发布截图。
    • 因为它只在界面编辑器中,我将大小从推断切换到主,推断使用我认为的底层容器视图的大小,即使 Segues 替换了父视图控制器
    猜你喜欢
    • 2014-02-09
    • 2015-09-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-04
    • 2013-01-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多