如何处理使用ARC并添加UIViewController视图的情况?
MyViewController *vc = [[MyViewController alloc] initWithNibName:@"MyViewController" bundle:nil];
[someView addSubview:vc.view]; //this retain vc.view
因为addSubview保留onlu视图,而不是控制器,所以控制器被释放。 ARC之前有一种方法可以保留控制器,只要neede,但如何防止ARC释放View Controller?
答案 0 :(得分:2)
我通过将vc声明为具有默认强属性的属性来解决类似情况。
答案 1 :(得分:0)
#define AntiARCRetain(...) void *retainedThing = (bridge_retained void *)__VA_ARGS; retainedThing = retainedThing
然后调用AntiARCRetain(控制器);
答案 2 :(得分:-1)
为什么你需要一个新的ViewController? 您应该只将视图添加为子视图并使用ViewController处理所有内容" someView"