我正在创建一堆UIViewControllers
来管理多个自定义对象。虽然我不再需要直接访问`UIViewController'来创建它。我想将viewController.view添加到我的Master UIViewController的视图中。然后我释放了subViewController。 SubViewController中有一个手势识别器,当我去执行一个手势时,我得到一个消息发送到解除分配的实例。
这是我的代码。
[...snip...]
for (int elementForPageTypeIndex = 0 ; elementForPageTypeIndex < elementsOnPage; elementForPageTypeIndex ++){
IoUIElementPickerElementButtonViewController * element = [[IoUIElementPickerElementButtonViewController alloc] initWithNibName:@"IoUIElementPickerElementButtonViewController" bundle:nil];
pageColumn = (elementForPageTypeIndex)%2 ;
pageRow = roundf((elementForPageTypeIndex)/2);
CGRect elementFrame= CGRectMake(kElementPickerColumnLeftOffset + (element.view.frame.size.width + kElementPickerColumnSeperation)*pageColumn + pageIndex*kElementPickerColumnPageOffset,
kElementPickerRowTopOffset + (kElementPickerRowSeperation + element.view.frame.size.height) * pageRow,
element.view.frame.size.width,
element.view.frame.size.height);
[element.view setFrame:elementFrame];
SysCDElement *ourCDElement = [elementsForPage objectAtIndex:elementForPageTypeIndex + maxElementsPerPages * pageIndex];
[scrollViewContent addSubview:element.view];
[element release];
}
[...snip...]
发布后,运行element
的dealloc。我想如果我保留了一个viewController的View,ViewController本身也会被保留?
谢谢,
答案 0 :(得分:2)
不。如果保留UIViewController的视图也神奇地保留了UIViewController,那将是非常可怕的。
经验法则是,如果你需要一些东西来保持活力,你就会保留它。如果您仍然需要它,请不要释放它。指望其他一些类来保留它是不可靠的。如果您希望控制器保持不变,请不要将其释放。