0

画面の1つにCollectionViewがあります。セルの1つを選択すると、別のビューに移行します。この新しいビューでは、下部に同じコレクションを表示したいと思います。

したがって、メイン画面に1つのItemsCollectionControllerがあります-ItemsCollectionController.mに

そして、2番目の画面用のWorkAreaControllerがあります。WorkArea.xibで、画面の下部にCollectionViewを追加しました。ItemsCollectionControllerに管理させたい。

WorkArea viewDidLoadの場合、WorkArea.xibを使用してItemsCollectionControllerを手動でインスタンス化しようとしました-何もありません。

同じクラスで両方のコレクションを処理したいだけではありません。私はそれを行うためにItemsCollectionControllerの同じインスタンスを持っていたいです。実行中のインスタンスのビューアウトレットを変更できますか?

私はこの一見似たような質問を見ましたが、これは私が望むものではありません。

ありがとう

4

1 に答える 1

0

私はそれをする方法を見つけました。CollectionViewを管理するコントローラーC1があるとします。ここで、コントローラーC2によって管理される別のビューに変更し、そのビューで、C1によって管理されるCollectionViewのコンテンツを表示したいと思います。

私がそれをするために見つけた方法は:

  1. C2.viewに切り替える前:

     [C1.myCollectionView removeFromSuperView] 
    

これにより、ビューを再利用できるようになります。

2.新しいコントローラーとそのビューに切り替えましょう

[UIView transitionFromView:C1.view
           toView:C2.view
            ....
             ...
  1. また、C1.myCollectionViewをC2.viewに追加するには、C2のviewDidLoadを変更する必要があります。 [self.view addSubView:C1.collectionView]

  2. そして今、collectionViewを作成してリロードします

[C1.collectionView reloadData];

これが誰かに役立つことを願っています

于 2012-10-21T09:43:25.167 に答える