条形项按钮在运行时不显示,但在设计时在模态视图中可见
Bar item button not displayed at runtime but visible at design time in a modal view
我一直在尝试不同的事情,并且四处寻找了一段时间,但没有找到我的问题的答案。也许我在做一些根本性的错误。
示例应用程序包括:
第一个视图控制器使用 segue 显示第二个视图控制器。这很好用。
第二个视图控制器,我在其中以编程方式模拟了第三个视图的显示,其中包含一个我想显示的栏项按钮(名为 "Done")。
第三个视图控制器中的条形项按钮在运行时不显示,但在设计时在 IntefaceBuidler 中显示。
第三个视图控制器需要以模式显示。
显示此栏项目按钮我做错了什么?
A sample project illustrating the problem is available here.
下面是设计时栏项按钮的屏幕截图:
下面是设计时未显示的栏项按钮的屏幕截图:
PS:
请忽略 "Unknown class ThirdViewControlller in Interface Builder file.",因为 ThirdViewController 在运行时显示正常。此外,视图中间的 "Done" 按钮工作正常。
在 SecondViewController
中,您需要将第三个推入导航控制器堆栈,如下所示:
self.navigationController?.pushViewController(thirdViewController, animated: true)
您目前正在将其呈现为模式。此外,您不必要地向故事板添加了第二个 UINavigationController
(用于第三个视图控制器)
如果您想呈现模态,则需要将控制器嵌入到导航控制器中:
let navController = UINavigationController(rootViewController: thirdViewController)
self.present(navController, animated: false)
如果您希望将其保留在情节提要中,则需要为 UINavigationController
提供一个标识符并在您的函数中对其进行填充。
上面的按钮是一个导航栏项,只会显示在导航栏上。为了达到你想要的结果,你首先必须至少在你的第二个 viewcontroller 中嵌入导航控制器,然后你应该做一个 push segue 而不是 modal 。可以通过
添加导航控制器
- 选择第二个 viewcontroller 转到 Editor\Embed In\Navigation 控制器
- 为了以编程方式将 viewcontroller 推送到用户导航控制器的堆栈上,请使用
self.navigationController?.pushViewController(nextViewController, animated: true)
我一直在尝试不同的事情,并且四处寻找了一段时间,但没有找到我的问题的答案。也许我在做一些根本性的错误。
示例应用程序包括:
第一个视图控制器使用 segue 显示第二个视图控制器。这很好用。
第二个视图控制器,我在其中以编程方式模拟了第三个视图的显示,其中包含一个我想显示的栏项按钮(名为 "Done")。
第三个视图控制器中的条形项按钮在运行时不显示,但在设计时在 IntefaceBuidler 中显示。
第三个视图控制器需要以模式显示。
显示此栏项目按钮我做错了什么?
A sample project illustrating the problem is available here.
下面是设计时栏项按钮的屏幕截图:
下面是设计时未显示的栏项按钮的屏幕截图:
PS: 请忽略 "Unknown class ThirdViewControlller in Interface Builder file.",因为 ThirdViewController 在运行时显示正常。此外,视图中间的 "Done" 按钮工作正常。
在 SecondViewController
中,您需要将第三个推入导航控制器堆栈,如下所示:
self.navigationController?.pushViewController(thirdViewController, animated: true)
您目前正在将其呈现为模式。此外,您不必要地向故事板添加了第二个 UINavigationController
(用于第三个视图控制器)
如果您想呈现模态,则需要将控制器嵌入到导航控制器中:
let navController = UINavigationController(rootViewController: thirdViewController)
self.present(navController, animated: false)
如果您希望将其保留在情节提要中,则需要为 UINavigationController
提供一个标识符并在您的函数中对其进行填充。
上面的按钮是一个导航栏项,只会显示在导航栏上。为了达到你想要的结果,你首先必须至少在你的第二个 viewcontroller 中嵌入导航控制器,然后你应该做一个 push segue 而不是 modal 。可以通过
添加导航控制器- 选择第二个 viewcontroller 转到 Editor\Embed In\Navigation 控制器
- 为了以编程方式将 viewcontroller 推送到用户导航控制器的堆栈上,请使用
self.navigationController?.pushViewController(nextViewController, animated: true)