【问题标题】:instantiateViewController with UITabBarController使用 UITabBarController 实例化ViewController
【发布时间】:2020-04-28 03:47:17
【问题描述】:

我有以下设置:

  • 登录屏幕 -> 成功登录后,将启动一个新视图
  • TabBarController -> 附加到 4 个不同的 ViewControllers
  • MenuViewController -> 这是 4 个标签栏的起点

我想像这样以编程方式启动 MenuViewController + 底部的标签栏:

   let storyboard = UIStoryboard(name: "Employee", bundle: nil)
   let tabbarVC = storyboard.instantiateViewController(withIdentifier: "tabBar") as! UITabBarController
   self.present(tabbarVC, animated: false, completion: nil)

不幸的是,没有启动视图,根本没有任何反应。 有什么想法吗?

【问题讨论】:

  • 你把上面的代码放在哪里
  • @Sh_Khan 在一个函数中,如果单击 loginButton 则触发。它是明确执行的,在询问之前检查过这个
  • 提供更多信息,您如何准确调用此代码(即使您知道代码已执行,因为现在我们甚至不知道什么是 self objct 也很重要)。你使用什么版本的 Xcode。

标签: swift storyboard uitabbarcontroller


【解决方案1】:

经过@Bozzo Game 的评论,我已经找到了解决这个问题的办法。

线 self.present(tabbarVC, animated: false, completion: nil)

必须替换为

UIApplication.shared.keyWindow?.rootViewController = tabbarVC

因为这里的想法不是使用present 将tabbarVC 显示在当前的顶部,而是更改Window 的rootViewController。

【讨论】:

    猜你喜欢
    • 2015-12-01
    • 2015-05-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-26
    • 2012-02-27
    • 1970-01-01
    • 2016-04-25
    相关资源
    最近更新 更多