2017-07-14 51 views
1

我想在用戶點擊按鈕時呈現視圖控制器。 但是我得到的錯誤信息:呈現collectionview的問題

UICollectionView must be initialized with a non-nil layout parameter

不過,我敢肯定,我在viewDidLoad中設置我的佈局......

有什麼建議?

這是代碼。

這裏就是我目前的視圖控制器

func handleLogout(){ 

    print("logout") 

    let loginController = LoginController() 

    present(loginController, animated: true, completion: nil) 

} 

這裏的登錄控制器的viewDidLoad

override func viewDidLoad() { 
    super.viewDidLoad() 

    let layout:UICollectionViewFlowLayout = UICollectionViewFlowLayout.init() 

    collectionView?.setCollectionViewLayout(layout, animated: true) 
    collectionView?.delegate = self 
    collectionView?.dataSource = self 
    collectionView?.backgroundColor = UIColor.white 
} 

如果有的話,我想我可能有之前我提出它來初始化它。不太確定如何做到這一點。

+0

你是如何啓動你的'collectionView '? – Codus

回答

0

原來我懷疑在提交之前collectionview必須被初始化爲

這是這樣

let layout = UICollectionViewFlowLayout() 

    let loginController = LoginController(collectionViewLayout: layout) 
0
func collectionView(collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAtIndexPath indexPath: NSIndexPath) -> CGSize { 
    let cellSize = CGSize(width: 90, height: 120) 
    // 
    return CGSizeMake(cellSize) 
} 

func collectionView(collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, insetForSectionAtIndex section: Int) -> UIEdgeInsets { 

    return UIEdgeInsetsMake(top: 20, left: 10, bottom: 10, right: 10) 
} 
0

UICollectionView做必須以非空佈局參數

它說你需要使用initWithFrame:collectionViewLayout:來啓動你的collectionView編程

初始化