嵌套视图控制器,添加子视图的位置以及如何管理内存

时间:2010-08-05 15:59:04

标签: objective-c cocoa-touch

我有一个由app delegate加载的根视图控制器和第二个(没有nib文件)应该作为根控制器的子加载(我希望显示其根控制器视图中包含的视图)。 我应该在哪里以及如何做到这一点? viewDidLoad方法是否适合这种初始化?

- (void)viewDidLoad {   
MyViewController* pdfController = [[MyViewController alloc]init];
[self.view addSubview:pdfController.view];  
[super viewDidLoad]; }

发布这样的物体怎么样?我应该在dealloc或viewDidUnload中释放它还是两者都发布?将调用viewDidUnload / dealloc?

1 个答案:

答案 0 :(得分:0)

viewDidLoad是一个可以将子视图添加到根视图的好地方。你应该在viewDidLoad的末尾发布它; pdfController将超出范围(因此您将丢失对象的跟踪),[UIView addSubview:]将保留它。如果你还在对象属性中保留对pdfController的引用,你可能希望在该对象的dealloc中释放它。