2017-06-20 1 views
0

私はchildViewControllersの未定義カウントの小さな格子状の形成を表示するmainViewControllerを持っています。 childViewControllersはデータに基づいて作成されるため、事前にそれらの数を知ることはできません。それが見えるように、私はf.exとしか対話できません。ボタンがmainViewController(宣言された変数のf.ex.)によって保持されている場合、childViewControllerのボタン - 私の質問は、mainViewControllerと[x] - childViewControllersの間の参照を個々に宣言せずに保持する方法です変数?宣言なしで[x] - viewControllersの数を保持する方法

私はchildControllerの親変数を作成してmainViewControllerに設定しようとしましたが、問題は解決しません - (childViewControllerのボタンは、それぞれのchildControllerを個別に宣言すると機能します) childControllersの配列を作成してmainViewControllerの配列に追加しようとしましたが、これも機能しません。

私は、カスタマイズやアニメーションがたくさんあるので、collectionViewを使用したくないと思うので、これらのchildViewControllersを保持する正しい方法は何ですか?

のUIViewControllerが配列である性質childViewControllersを持っている:私が正しくあなたの質問を理解している場合

答えて

0

https://developer.apple.com/documentation/uikit/uiviewcontrollerコンテナビューコントローラセクションを実装すると、子ビューコントローラを正しく追加する方法を理解することができます。あなたの親ビューコントローラでchildViewControllers配列はあなたの子ビューコントローラを保持します

myContainerViewController.childViewControllers[x].whateverButton ... 
// or 
let childX = myContainerViewController.childViewControllers[x] 
childX.doSomething() 

次に、あなただけのこのような[x]は、子ビューコントローラあなたを取得するには、配列の添字を使用することができます。

EDIT:

if let child = mycontainerVC.childViewControllers[x] as? MySubclassOfUIViewController { 
    child.subclassProperty = 1 // or whatever 
} 
+0

おかげでたくさん:

あなたのサブクラスのプロパティにアクセスする必要がある場合、あなたはあなたにのUIViewControllerをダウンキャストする必要があるあなたは、このようにダウンキャストswift4 link, should be the same for swift3

をサブクラス化! :-)私はそれが前に働く(私のchildControllersに反応がない)ことができなかったので、アレイソリューションを試したときにルーキーミスをしたに違いないが、それをもう一度試してみると、 「addChildViewController(_ :)」の使用に関するドキュメントでも私のために働きます。 – PeterAntonsen

関連する問題