我正在使用类型为MyController
的单件类UIViewController
。我可以访问[MyController sharedInstance].view
之类的视图属性,并且可以将其设置为nil
,例如
[MyController sharedInstance].view = nil;
我想限制某人访问view属性。我怎么能停止/限制呢?
答案 0 :(得分:0)
我自己找到了解决方案。我将方法重写为
-(void)setView:(UIView*)view {
if (view == nil) {
//ignore - make no change
}
else {
//default performance
[super setView:view];
}
}
答案 1 :(得分:-2)
我在多个屏幕中使用控制器。如果控制器被多次创建,它会增加应用程序的权重。所以,为了克服这个问题,我创造了一次并在每个地方重复使用它。
您可以为UIViewController创建一个可以在多个视图中使用的基类。如果加载新视图,iOS将正确处理内存管理。旧视图将被卸载
- (void)viewDidDisappear:(BOOL)animated
- (void)viewWillDisappear:(BOOL)animated
将被调用。在那里你可以处理任何多余的数据。