当我点击一个单元格时,我想推动这个视图控制器。
这是我的代码:
func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
let user = filteredUsers[indexPath.item]
print(user.username)
let userProfileController = UserProfileController(collectionViewLayout: UICollectionViewFlowLayout())
}
我想推userProfileController
。
注意:这是UIView
而不是视图控制器
答案 0 :(得分:5)
你不能从UIView推出任何控制器。要做到这一点,你必须使用NavigationController。
我假设你在一些UIViewController中有你的UIView,所以很多选项之一就是创建一个委托,告诉你的视图控制器进行推送。
protocol MyViewDelegate {
func didTapButton()
}
class MyView: UIView {
weak var delegate: MyViewDelegate?
func buttonTapAction() {
delegate?.didTapButton()
}
}
class ViewController: UIViewController, MyViewDelegate {
override func viewDidLoad() {
super.viewDidLoad()
myView.delegate = self
}
func didTapButton() {
self.navigationController?.pushViewController(someVc, animated: true)
}
}
答案 1 :(得分:1)
试试这个
process.env.MOCK_API
答案 2 :(得分:0)
如果导航控制器堆栈和视图控制器中的视图控制器保持视图,则可以按照 阻止机制
func pushViewController(completion: () -> ()) {
}
从VC分配完成块。
self.navigationController?.pushViewController(userProfileController, animated: true)