【问题标题】:How to present a viewController modally when it's tabBar item is selected如何在选择 tabBar 项目时以模态方式呈现 viewController
【发布时间】:2015-03-21 21:51:03
【问题描述】:

我有一个带有 UITabBarController 和 5 UITabBarItems 的应用程序。我想为第三个标签栏项目(相机控制器)以模态方式启动视图控制器。

我试过这段代码:

override func viewDidLoad() {
    super.viewDidLoad()

  self.presentViewController(self, animated: true, completion: nil)

}

但是我的应用程序崩溃了。我该怎么办?

【问题讨论】:

  • 您需要在 viewDidAppear 中进行。任何更早的时间,视图都不会出现在窗口的视图层次结构中。
  • viewDidAppear 崩溃并出现以下错误:“应用程序试图以模态方式呈现活动控制器”
  • 对不起,我错过了你试图展示“自我”的事实。为什么要这么做?自我已经出现在屏幕上。
  • 好的,那我怎样才能让它在屏幕上显示出来?
  • 你没有。这是没有意义的。如果您想以模态方式呈现它,那么它不应该是标签栏控制器的子项之一。你需要重新考虑你的 UI。

标签: ios swift uiviewcontroller uitabbarcontroller


【解决方案1】:

如果您想要一个浮动中心按钮(或类似的东西),您基本上需要一个空选项卡,用作您在特定坐标处添加的自定义按钮的占位符。

您将这个新按钮添加为选项卡栏的子视图,只需从用户按下它即可打开您的模态对话框。它在标签栏上所需的空间由其下方的空白和禁用项目提供。除了提供父视图之外,tabbarcontroller 与它无关。如果您将标签图像设置为 nil,标题为空并禁用它,那么它只是一个空白空间,您可以在其中放置自己的按钮。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-03-07
    • 2017-07-26
    • 1970-01-01
    • 2011-12-15
    • 1970-01-01
    • 2015-12-11
    • 1970-01-01
    • 2011-04-09
    相关资源
    最近更新 更多