У меня проблема с моим scrollview, который содержит несколько просмотров. Я думаю, проблема в том, что выпуски subviews выпущены. У меня есть кнопки в подвидов и когда я нажимаю кнопки я получаю эту ошибку, [GraphDisplayViewController performSelector:withObject:withObject:]:
ios несколько просмотров с просмотром прокрутки освобожденный экземпляр
сообщение отправлено высвобождены, например
. Если есть только одно subview, то я могу просто использовать свойство, и это работает, но поскольку количество подзаголовков меняется (одно или несколько), оно не работает, и я не знаю, как это решить.
В настоящее время я загружаю все виды сразу в начале. Я работаю только по загрузке одного подвью одновременно и присваиванию свойства этому представлению, но я не уверен, что это сработает.
Мой макет выглядит следующим образом: родительский вид (DetailViewController) содержит прокрутку, я добавляю представления (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];
}
}
UPDATE Был ошибка в коде, тестирование, чтобы увидеть, если это решит что-нибудь
subView = [[GraphDisplayViewController alloc] initWithNibName:@"GraphDisplayViewController" bundle:nil];
[viewControllers replaceObjectAtIndex:page withObject:subView];
subView = [[GraphDisplayViewController alloc] init]; <- Mistake
Как объявляется 'subview'? (Если это свойство, используйте 'self.subView', чтобы ссылаться на него.) –