【发布时间】:2018-07-20 04:18:35
【问题描述】:
我试图创建一个以编程方式实现UICollectionViewController 的简单应用程序。我已经创建了一些单元格,当用户单击特定单元格时应该移动到另一个控制器。但我面临的问题是哪个视图没有推送到下一个视图控制器。
这是我在appDelegate中设置rootViewController
window = UIWindow(frame: UIScreen.main.bounds)
window?.makeKeyAndVisible()
let flow = UICollectionViewFlowLayout()
let collectionView = ViewController(collectionViewLayout: flow)
let navigation = UINavigationController(rootViewController: collectionView)
window?.rootViewController = navigation
这是我创建UICollectionView的方法
private let cellId = "cellid"
var viewController: ViewController?
override func viewDidLoad() {
super.viewDidLoad()
collectionView?.backgroundColor = .white
collectionView?.register(UICollectionViewCell.self, forCellWithReuseIdentifier: cellId)
// Do any additional setup after loading the view, typically from a nib.
}
override func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
let cell = collectionView.dequeueReusableCell(withReuseIdentifier: cellId, for: indexPath)
cell.backgroundColor = .red
return cell
}
override func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
return 5
}
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {
return CGSize(width: view.frame.width, height: 210)
}
这是我如何控制用户点击特定的
override func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
print(indexPath.item)
viewController?.pushView()
}
func pushView() {
let controller = UINavigationController(rootViewController: DetailController())
self.navigationController?.pushViewController(controller, animated: true)
}
即使函数被调用,但它永远不会推送到新的视图控制器
【问题讨论】:
-
我已经将
UICollectionViewController设置为 UINavigationController -
window = UIWindow(frame: UIScreen.main.bounds) let flow = UICollectionViewFlowLayout() let collectionView = ViewController(collectionViewLayout: flow) let navigation = UINavigationController(rootViewController: collectionView) window?.rootViewController = navigation window?.makeKeyAndVisible()
标签: ios swift uinavigationcontroller uicollectionviewcell uicollectionviewflowlayout