我正在阅读一些旧代码,并尝试检测一些难以发现的错误。我遇到了UIViewController的异常用法,在其中分配了控制器并将其存储在属性中,并且将其视图添加为子视图,而不是呈现整个控制器。

首先,我要说我知道这是一种hacky和异常。也就是说,以下实施有哪些危险?是否有任何可能引起的意外副作用?如果MyOtherViewController在某个时刻由于收到内存警告而卸载其视图并重新创建它,会导致任何奇怪的行为该怎么办?

@interface MyViewController()
@property (nonatomic, strong) MyOtherViewController *otherVC;
@end

@implementation MyViewController

- (void)viewDidLoad
{
    self.otherVC = [[MyOtherViewController alloc] init];
    [self.view addSubview:self.otherVC.view];
}

@end

最佳答案

看看以编程方式显示View Controllers内容ojita
注意:重要:切勿将视图控制器的视图直接安装到视图层次结构中。

10-07 17:15