【发布时间】:2020-10-16 05:01:18
【问题描述】:
我正在扩展 UICollectionView 以创建一个空视图,我无法调用 self.present。有没有更好的方法来处理空视图?我应该如何处理 collectionView 中的 self.present?
extension UICollectionView {
func setEmptyView() {
let signUpButton = UIButton(type: .custom)
signUpButton.addTarget(self, action: #selector(onSignIn), for: .touchUpInside)
}
@objc func onSignIn() {
let viewController = SignInController()
viewController.modalPresentationStyle = .fullScreen
}
}
【问题讨论】:
-
要么获取控制器作为参数,要么获取topController来呈现
-
从 View 打开 ViewController 是不好的设计,我的建议是使用委托并要求 UICollectionView 的 ViewController 处理委托以打开您的 SignInController()。原因是您可能会发现旋转、状态栏和导航栏处理等问题。(基本上所有这些都应该从以前的视图控制器继承)
标签: ios swift xcode uiviewcontroller uicollectionview