【发布时间】:2021-06-18 14:10:36
【问题描述】:
我试图将枚举传递给另一个故事板中的UIViewController,但错误是UIViewController 没有成员ViewType。当我在强制! 后检查变量类型时,它仍然是UIViewController 而不是QuotesTestmoniesViewController
为什么变量的类型没有被更改为新的视图控制器类型?我在这里做错了什么?
func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
var viewController = UIViewController()
switch indexPath.item {
//Saints
case 0:
viewController = self.amiStoryboard.instantiateViewController(withIdentifier: "militarysaintscontroller") as! SaintsViewController
self.navigationController?.pushViewController(viewController, animated: true)
//Prayers
case 1:
break;
//Testmonies
case 2:
break;
//Quotes
case 3:
viewController = self.amiStoryboard.instantiateViewController(withIdentifier: "militaryquotestestmoniescontroller") as! QuotesTestmoniesViewController
viewController.viewType = ViewType.Quotes //ERROR
self.navigationController?.pushViewController(viewController, animated: true)
default:
return
}
}
【问题讨论】:
-
试试这个:
(viewController as? QuotesTestmoniesViewController).viewType = ViewType.Quotes -
是的,它似乎正在工作。但是为什么第一次没有改变类型呢?这是一个错误还是什么?
-
你不必像那样把代码写得乱七八糟
标签: swift casting uiviewcontroller