11
votes

I'm using Xcode 11.1 and my deployment target is iOS 10.0

I can't instantiate a view controller like before. Here is the code in

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey : Any]?) -> Bool

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

I get the error saying:

'instantiateViewController(identifier:creator:)' is only available in iOS 13.0 or newer

How possibly can one instantiate view controllers from storyboard programmatically on Xcode 11.1. Any other way?

3
Please check your Deployment target. I think it is lower than 13.0 so you can not use this methods. - Mahendra
thanks @Mahendra. I solved it by changing identifier: to withIdentifier for iOS versions below 13 - Suh Fangmbeng

3 Answers

38
votes

You need to use

storyboard.instantiateViewController(withIdentifier: "TabBarController")

the new instantiateViewController(identifier: "TabBarController") is only available on iOS 13 and returns ViewController instead of UIViewController as you can see here

enter image description here

6
votes

You should do following:

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

parameter should be -withIdentifier- not -identifier-

0
votes
//use instantiateViewController(withIdentifier:"") method to resolve notinstantiateViewController(Identifier:"") 


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

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