2016-07-24 2 views
0

私はタブビューコントローラを持ち、タブコントローラの1つはビューコントローラです。 swiftを使用して、ユーザーが画像をタップすると、そのビューコントローラ内にコレクションビューコントローラを読み込む必要があります。 これはプログラムで行うことができますか?私は3つのタブをタブビューコントローラーに持っていて、そのうちの1つだけを行う必要があります。 これまでに行ったこと: 新しいスウィフトファイルを追加しました。それにhome.swift 追加この:ビューコントローラ内のコレクションビューコントローラを素早くロードする

class EventsController: UICollectionViewController 
{ 
    override func viewDidLoad() { 
     super.viewDidLoad() 
     print("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!") 
    } 
} 

は、その後、私はEventsControllerにビューコントローラのクラスを変更し、それは次の例外がスローされます。 例外「NSInternalInconsistencyException」、理由: [UICollectionViewController loadViewメソッド]インスタンス化ビューをコントローラー 識別子ホームストーリーボードからMain、しかしUICollectionViewを取得しなかった

答えて

0

あなたができることは、UIViewControllerのサブクラスであるUICollectionViewControllerクラスを作成することです。あなたはUICollectionViewControllerためレイアウトを指定しなければならないこと

class CustomTabBarController: UITabBarController { 
    override func viewDidLoad() { 
    super.viewDidLoad() 
    let homeImage = UIImage(named: "home") 
    let mainController = MainCollectionViewController(collectionViewLayout: UICollectionViewFlowLayout()) 
    let navigationController = UINavigationController(rootViewController: mainController) 


    viewControllers = [navigationController] 
} 

注:あなたはこれを行うことによって、非常に簡単にこれを行うことができます。

今すぐあなたのUICollectionViewControllerクラス:

class MainCollectionViewController: UICollectionViewController { 
    override func viewDidLoad() { 
    super.viewDidLoad() 
    // code goes here 
    } 
} 
+0

申し訳ありませんが、私はこれに従うことができません。私が言ったように、私は既に新しいView Controllerをタブバーコントローラの新しいタブとして追加しました。私は、新しいSWIFTファイル、home.swiftを追加し、その中に私は、このクラスを追加しました:クラスEventsController:UICollectionViewController { オーバーライドのviewDidLoad FUNC(){ super.viewDidLoad() プリント( "!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ") //collectionView?.registerClass(EventCell.self、forCellWithReuseIdentifier:セルID ) –

+0

どの部分があなたを混乱させましたか? –

+0

私が言ったように、私は既に新しいView Controllerをタブバーコントローラの新しいタブとして追加しました。私は、新しいSWIFTファイル、home.swiftを追加し、その中に、私はこのクラスを追加しました:クラスEventsController:UICollectionViewController { オーバーライドのviewDidLoad FUNC(){ super.viewDidLoad() プリント( "!!!!") } }そして、このクラスをこのタブで使用するように設定しました。結果は次のとおりです:例外 'NICnternalInconsistencyException'、理由:[UICollectionViewController loadView]インスタンス化されたView Controller with storyboard Main、しかしUICollectionViewを取得しませんでした –

関連する問題