複数のビューを保持するスクロールビューに問題があります。問題は、サブビューがリリースされていることだと思います。サブビューにボタンがあり、ボタンをクリックするとこのエラーが発生します。[GraphDisplayViewController performSelector:withObject:withObject:]:
割り当て解除されたインスタンスに送信されたメッセージ
。サブビューが1つしかない場合は、プロパティを使用するだけでこれは機能しますが、サブビューの数が異なるため(1つ以上)、機能せず、これを解決する方法がわかりません。
現在、最初はすべてのビューを一度にロードしています。一度に1つのサブビューのみをロードし、そのビューにプロパティを割り当てる作業を行っていますが、それが機能するかどうかはわかりません。
私のレイアウトは次のとおりです。親ビュー(DetailViewController)にはscrollviewが含まれ、views(GraphDisplayViewController)をscrollviewに追加し、サブビューはそれぞれビュー(GraphView)をロードします。
どんな助けやアドバイスも大歓迎です。詳細が必要な場合はお知らせください。お時間をいただきありがとうございます。
サブビューを追加する方法のコードサンプル、
DetailViewController
- (void)loadScrollViewWithPage:(int)page
{
if (page < 0) return;
if (page >= pageControl.numberOfPages) return;
subView = [viewControllers objectAtIndex:page];
NSString *description;
NSString *packsize;
if ((NSNull *)subView == [NSNull null])
{
subView = [[GraphDisplayViewController alloc] initWithNibName:@"GraphDisplayViewController" bundle:nil];
[viewControllers replaceObjectAtIndex:page withObject:subView];
subView = [[GraphDisplayViewController alloc] init];
subView.molecule = moleculeName;
subView.description = description;
subView.dataArray = moleculePrices;
}
else
{
return;
}
// add the controller's view to the scroll view
if (nil == subView.view.superview)
{
CGRect frame = scrollView.frame;
frame.origin.x = frame.size.width * page;
frame.origin.y = 0;
subView.view.frame = frame;
[scrollView addSubview:subView.view];
}
}
更新 コードに誤りがあり、それが何かを解決するかどうかをテストしました
subView = [[GraphDisplayViewController alloc] initWithNibName:@"GraphDisplayViewController" bundle:nil];
[viewControllers replaceObjectAtIndex:page withObject:subView];
subView = [[GraphDisplayViewController alloc] init]; <- Mistake