我遇到此错误-InstantiateViewController(identifier:creator :)'仅在iOS 13.0或更高版本中可用
要解决此问题,我必须使用以下条件:
if #available(iOS 13.0, *) {
}
但是在没有这种情况的情况下如何解决这个问题。
我的代码:
func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
let vc = storyboard?.instantiateViewController(identifier: "CartViewController") as? CartViewController
vc?.bookNameToSend = bookName[indexPath.row]
vc?.bookImageToSend = bookImage[indexPath.row]
self.navigationController?.pushViewController(vc!, animated: true)
}
}
答案 0 :(得分:2)
在iOS 13中,参数名称为identifier
,在iOS 13版本以下,参数名称为withIdentifier
if #available(iOS 13.0, *) {
let vc = storyboard.instantiateViewController(identifier: "doctorProfileVC") as DrProfileViewController
self.navigationController?.pushViewController(vc, animated: true)
} else {
let vc = storyboard.instantiateViewController(withIdentifier: "storyboard.instantiateViewController") as! DrProfileViewController
self.navigationController?.pushViewController(vc, animated: true)
}
答案 1 :(得分:0)
我认为解决该问题的唯一方法是将项目最低目标版本更改为iOS 13或避免使用该特定方法,否则必须使用if条件。
答案 2 :(得分:0)
在iOS 13中,Apple引入了这种新方法instantiateViewController(identifier:creator:)
,该方法会造成混乱,但是旧方法仍然存在。
因此,请改用instantiatViewController(withIdentifier:)
。
let vc = storyboard?.instantiateViewController(withIdentifier: "CartViewController") as? CartViewController