にアウトカムは非関数型の値を呼び出すことはできません「UICollectionView」スウィフト3
カスタムタブバーコントローラにtabbbarアイコンを作成するための一般的な民間の方法対象としています。示された各コントローラのタブバーアイコンを正常に描画する必要があります。
private func createNavController(imageName: String, _ controllerName: UICollectionViewController) -> UINavigationController {
let layout = UICollectionViewFlowLayout()
Thrown Here-> let viewController = controllerName(collectionViewLayout: layout)
let navController = UINavigationController(rootViewController: viewController)
navController.tabBarItem.image = UIImage(named: imageName)
return navController
}
:
結果
は
非機能型の値を呼び出すことはできません 'UICollectionView'
失敗(ジェネリック)コードで失敗します
作業(非ジェネリック)コード
let userLayout = UICollectionViewFlowLayout()
let userController = UserController(collectionViewLayout: userLayout)
let navController = UINavigationController(rootViewController: userController)
navController.tabBarItem.image = UIImage(named: "loc-map-route")
関連
class UserController : UICollectionViewController, UICollectionViewDelegateFlowLayout
{
override func viewDidLoad() {
super.viewDidLoad()
collectionView?.backgroundColor = UIColor.green
}
}
環境
IOS 10 SWIFT 3のXcode 8
ありがとうございます。 createNavController
あなたのパラメータcontrollerName
のあなたの定義では
ありがとう、Alvaro。あなたはどうやってこのメソッドを呼び出しますか? –
問題ありません!私は自分の答えを更新しました –
ダンの答えはより一般的ですが、あなたは彼の答えを試してみるとよいでしょう。 –