我收到此错误-InstantiateViewController(标识符: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)
}
}
4条答案
按热度按时间ibps3vxo1#
在iOS 13中,苹果引入了这种新方法
instantiateViewController(identifier:creator:)
,这会造成混乱,但旧方法仍然存在。因此请改用
instantiatViewController(withIdentifier:)
。a0x5cqrl2#
在iOS 13中,参数名称为
identifier
,在iOS 13版本以下,参数名称为withIdentifier
rsaldnfx3#
你可以不用检查iOS版本就可以完成你的工作。为了更容易,你只需要添加两个常用的方法作为扩展。--〉
现在在你的viewController中,你可以像这样使用它们--〉
每当你想导航到你的目标viewController时调用这个私有方法。
n1bvdmb64#
我认为解决这个问题的唯一方法是将项目的最低目标版本更改为iOS 13或避免使用该特定方法,否则您将不得不使用if条件。