Xcode 11:无法从带有标识符的情节提要中实例化视图控制器

Posted

技术标签:

【中文标题】Xcode 11:无法从带有标识符的情节提要中实例化视图控制器【英文标题】:Xcode 11: cannot instantiate view controller from storyboard with identifier 【发布时间】:2020-02-06 11:00:09 【问题描述】:

我使用的是 Xcode 11.1,我的部署目标是 ios 10.0

我不能像以前那样实例化视图控制器。这是

中的代码

func 应用程序(_ 应用程序:UIApplication, didFinishLaunchingWithOptions 启动选项: [UIApplication.LaunchOptionsKey : Any]?) -> Bool

let storyboard = UIStoryboard(name: "Main", bundle: nil)
let viewController = storyboard.instantiateViewController(identifier: "TabBarController")

我收到错误消息:

'instantiateViewController(identifier:creator:)' 仅适用于 iOS 13.0 或更新版本

如何在 Xcode 11.1 上以编程方式从情节提要中实例化视图控制器。还有什么办法吗?

【问题讨论】:

请查看您的Deployment target。我认为它低于 13.0,所以你不能使用这种方法。 感谢@Mahendra。对于 13 以下的 iOS 版本,我通过将 identifier: 更改为 withIdentifier 解决了这个问题 【参考方案1】:

你需要使用

storyboard.instantiateViewController(withIdentifier: "TabBarController")

新的 instantiateViewController(identifier: "TabBarController") 仅在 iOS 13 上可用,并返回 ViewController 而不是 UIViewController,如您在此处看到的那样

【讨论】:

谢谢你,withIdentifier:identifier: 非常棒 感谢 Melian.. 原因?? 那么,你应该调用instantiateInitialViewController og iOS @JesperSchläger 与该方法返回的内容有关,如果您使用的是 SwiftUI,则为 ViewController,如果您使用的是 UIKit,则为 UIViewController 非常感谢。它节省了时间。 @Reinier,不错的收获... 【参考方案2】:

你应该做到以下几点:

let viewController = storyboard.instantiateViewController(withIdentifier: "TabBarController")

参数应该是-withIdentifier-而不是-identifier-

【讨论】:

【参考方案3】:
//use instantiateViewController(withIdentifier:"") method to resolve notinstantiateViewController(Identifier:"") 


 let objRef : RatindAndReviewVC = self.storyboard?.instantiateViewController(withIdentifier: "RatindAndReviewVC") as! RatindAndReviewVC

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

【讨论】:

请不要只发布代码作为答案,还要解释您的代码的作用以及它如何解决问题的问题。带有解释的答案通常更有帮助、质量更好,并且更有可能吸引投票。

以上是关于Xcode 11:无法从带有标识符的情节提要中实例化视图控制器的主要内容,如果未能解决你的问题,请参考以下文章

UIViewController 扩展从情节提要中实例化

Xcode 11.4。导航的标题颜色从情节提要中变为黑色

从 xib 或带有情节提要的其他场景添加子视图

无法通过情节提要创建 Unwind Segue Xcode 11

使用自适应布局和情节提要在 XCode6 中实现 ScrollView

以编程方式设置 rootViewController 不起作用,仅在 Xcode 11 中从情节提要中选择初始视图控制器