2012-02-25 22 views
-1

ループを使用して、それぞれオブジェクトを表し、UIScrollviewに返されたUIImage + UILabelを含むUIViewを追加しようとしています。 。各UIViewにはボタンがあり、スーパービューを呼び出して次のUIViewControllerを呼び出すように設計されています。しかし、私はforループ内でこれらのUIViewを割り当てているので、メモリは保持されていないように見えるので、ボタンを押すと常にseg-faultが発生します。UIScrollviewにサブビューとして多くのUIViewを追加する方法

UIViewに格納されているUIImageとUILabelをコントローラに渡す必要があるため、これを行うにはどうすればよいですか?ここで

は私のコードです:

親ビュー:

//これは、ループの

IndividualObjectViewController *controller = [self.storyboard instantiateViewControllerWithIdentifier:@"smallObjectSubView"]; 
controller.delegate = self;  
controller.view.frame = CGRectMake(105*column+5, 125*row+45, 100, 120); 
[self.objectScrollView addSubview:controller.view]; 

オブジェクトビューから呼び出されます。

  • (IBAction)objectButton: (id)送信者{ }

デバッグのためにIBActionを完全に空にしましたが、このアクションをストーリーボードボタンに接続するとすぐに、プログラム受信信号EXEC_BAD_ACCESSエラーが表示されます。

+0

これはListViewを使用したNavigationControllerのようなものですか?なぜあなたはすでにリンゴをあなたに与えるのでしょうか? –

+0

実際にはNavigationControllerですが、私はUIListViewに関する情報を見つけることに恵まれていません。あなたはそれについて私にもっと多くの情報を教えてくれますか?ありがとう。 –

+0

https://developer.apple.com/library/ios/#DOCUMENTATION/UIKit/Reference/UITableView_Class/Reference/Reference.html –

答えて

0

controllerを保持していない場合は、(ビューを使用していても)実行ループの現在のパスの最後に割り当てが解除されます。

IndividualObjectViewControllerのすべてのインスタンスをNSMutableArrayまたはNSMutableDictionaryに格納する必要があります。これらのコンテナは、そこに格納されているオブジェクトを保持します。

+0

ありがとう、ロブ。これらのビューをたくさん読み込んだ場合(30 +など)、これはメモリ内に問題を作りますか?これはUITableViewで使用されているアプローチですか? –

+0

親コントローラに@property(Strong)NSMutableArrayを追加し、各オブジェクトコントローラを追加すると、EXEC_BAD_ACCESSエラーと同じ結果になります。 –

+0

'UITableView'では、各セルに独自のUIViewControllerが必要というわけではありません。 –

関連する問題