条形项按钮在运行时未显示,但在模态视图中在设计时可见

时间:2017-04-17 19:24:09

标签: ios swift swift3 interface-builder xcode8

我正在尝试不同的事情,并在没有找到问题答案的情况下四处寻找。也许我正在做一些根本错误的事情。

示例应用程序包含:

  • 使用segue显示第二个视图控制器的第一个视图控制器。这很好。

  • 第二个视图控制器,我以编程方式模拟第三个视图的显示,其中包含我想要显示的条形项按钮(名为“完成”)。

第三个视图控制器中的条形项按钮在运行时不显示,但在设计时显示在IntefaceBuidler中。

第三个视图控制器需要以模态显示。

显示此条形项按钮我做错了什么?

A sample project illustrating the problem is available here.

在设计时的条形项按钮的屏幕截图下方:

enter image description here

在设计时未显示的条形项按钮的屏幕截图下方:

enter image description here

PS: 请忽略“Interface Builder文件中的未知类ThirdViewControlller。”,因为ThirdViewController在运行时显示正常。此外,视图中间的“完成”按钮工作正常。

2 个答案:

答案 0 :(得分:2)

self.navigationController?.pushViewController(thirdViewController, animated: true) 中你需要将第三个推到导航控制器堆栈上,如下所示:

UINavigationController

您目前正在将其作为模式展示。此外,您已经不必要地在故事板中添加了第二个let navController = UINavigationController(rootViewController: thirdViewController) self.present(navController, animated: false) (对于第三个视图控制器)

如果要呈现模态,则需要将控制器嵌入导航控制器中:

UINavigationController

如果您希望将其保留在故事板中,那么您需要为 <svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="100%" height="100%" viewBox="0 0 1600 700" enable-background="new 0 0 1600 700" xml:space="preserve"> <g> <rect x="200" y="10" width="100" height="100"> <animate attributeType="XML" attributeName="x" from="-100" to="100%" dur="10s" repeatCount="indefinite"/> </rect> </g> </svg>提供一个标识符,并在您的函数中保留该标识符。

答案 1 :(得分:0)

上面的按钮是一个导航栏项目,只会显示在导航栏上。为了达到理想的效果,首先必须至少在第二个视图控制器中嵌入导航控制器,然后你应该执行推送segue而不是模态。可以通过

添加导航控制器
    选择第二个视图控制器的
  • 转到编辑器\嵌入\导航控制器
  • 用于以编程方式将viewcontroller推送到用户导航控制器的堆栈使用

self.navigationController?.pushViewController(nextViewController, animated: true)