【问题标题】:Instantiate ViewController when using Storyboard使用 Storyboard 时实例化 ViewController
【发布时间】:2015-12-01 08:40:07
【问题描述】:

我正在使用Storyboard 并希望通过单击标签栏项目来推送视图控制器以在UITabBarController 中显示。

为此,我使用现有的ViewController 链接到在Storyboard 上创建的TabBarController 并使用以下代码。但是,我得到了异常,Storyboard 不包含标识符为“SwitchViewController”的视图控制器

func tabBarController(tabBarController: UITabBarController, shouldSelectViewController viewController: UIViewController) -> Bool {

        let switchViewController = self.storyboard?.instantiateViewControllerWithIdentifier("SwitchViewController")
        self.presentViewController(switchViewController, animated: true, completion: nil)
        return false
    }

更新:我在Main.storyboard 中为SwitchViewController 添加了Storyboard ID,并对上面的代码进行了注释。当我移动到此选项卡时,应用程序失败并出现同样的错误

我正在使用 iOS 8 和 Xcode 7。请帮助

【问题讨论】:

  • 我使用了正确的代码,但我的第一个 ViewController 缺少导致此问题的 NavigationControllerrootViewController 关系。

标签: ios objective-c swift uiviewcontroller storyboard


【解决方案1】:

检查您的 Storyboard ID,

试试这个,

func tabBarController(tabBarController: UITabBarController, shouldSelectViewController viewController: UIViewController) -> Bool {

    if viewController is SwitchViewController {
        let switchViewController = self.storyboard?.instantiateViewControllerWithIdentifier("SwitchViewController") as! SwitchViewController
        self.presentViewController(switchViewController, animated: true, completion: nil)
        return false
    }

    return true
}

【讨论】:

  • 我猜你是想写viewController is SwitchViewController。无论如何,即使这段代码也失败了。还是一样的错误。问题是无论我做什么,它总是抱怨,“无法在视图中找到标识符”。 我有一个 UITabBarController 并且 SwitchViewController 附加到标签栏
  • 你能列出你的步骤吗?因为,对我来说,即使我只是在情节提要中添加情节提要 ID,它也会失败。你的 Xcode 是什么版本?
  • 我尝试了一个新项目,它也很有效。但是,那么我现有的项目有什么问题呢?在我启动应用程序之前,我已经删除了 Xcode 提供的默认视图控制器,而是使用了新的视图控制器。会不会是这个问题?
  • 很高兴听到这个消息。也许是吧。我不确切知道。我认为最好不要把时间花在琐碎而不重要的事情上。
  • 成功了。错误地,我在恢复 Main.storyboard 前后一周删除了它,我猜 rootViewController 信息丢失了。我确实注意到一些屏幕坏了,但我想我可能会失去一些连接。 '重新启动rootViewController连接后,终于成功了`
【解决方案2】:

试试下面的代码: 让故事板= UIStoryboard(名称:“主要”,捆绑:无) 让 VC = storyboard.instantiateViewControllerWithIdentifier("SwitchViewController")

【讨论】:

  • 试过了。不工作。我得到了故事板对象,但在其中找不到ViewController
猜你喜欢
  • 2012-02-27
  • 1970-01-01
  • 2015-05-30
  • 1970-01-01
  • 2014-02-22
  • 2020-04-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多