难道一个UIView保留其视图控制器(Does a UIView retain its view c

2019-10-16 14:49发布

难道一个UIView保留它相关的视图控制器?

例如,在下面的代码的视图由父视图保留。 这将是方便的,如果这种观点还保留了它的视图控制器,这样我可以继续前进,在的loadView方法,释放控制器。

- (void) loadView {

  ...

  MyViewController* ctrl = [[MyViewController alloc] init];
  [self.view addSubview: ctrl.view];
  [ctrl release];

}

可替换地,我想,是跟踪控制器的作为一个实例变量和在适当的时候将其释放。

谢谢

Answer 1:

没有它不。 你需要一个成员变量,因为你已经提到。

(视图甚至不知道自己的的viewController)



Answer 2:

你已经得到的东西有些落后:一个视图控制器保留其观点,不是周围的其他方式。 典型地,一个视图控制器管理的观点,即在屏幕上一起整个层次结构。 而iOS 5不会让你同时使用多个视图控制器,这样做正确,需要的不仅仅是增加一个控制器的视图作为另一个控制器的视图的子视图更多。 对于一个容易消化的过程说明,请参阅该视图控制器章节预览马特·纽伯格的书, 编程的iOS 5,第2版 。 如果添加一个视图控制器作为另一个视图控制器的孩子,家长将保留孩子,你将不再需要为它创建一个单独的属性。 但做阅读文档你试试吧,为了避免大量的头划伤了。



文章来源: Does a UIView retain its view controller