как сохранить вид после addSubview UIViewController с ARC - PullRequest
2 голосов
/ 05 февраля 2012

Как справиться с ситуацией, когда я использую ARC и добавляю представление UIViewController?

MyViewController *vc = [[MyViewController alloc] initWithNibName:@"MyViewController" bundle:nil];
[someView addSubview:vc.view]; //this retain vc.view

потому что addSubview сохраняет только представление, а не контроллер, поэтому контроллер освобождается. До ARC был способ сохранить контроллер так долго, как нужно, но как запретить ARC выпускать View Controller?

Ответы [ 3 ]

2 голосов
/ 03 ноября 2012

Мне удалось решить аналогичную ситуацию, объявив vc свойством со строгим атрибутом по умолчанию.

0 голосов
/ 30 июня 2014

#define AntiARCRetain(...) void *retainedThing = (<strong>bridge_retained void *)__VA_ARGS</strong>; retainedThing = retainedThing

А затем вызвать AntiARCRetain (контроллер);

0 голосов
/ 08 февраля 2012

Зачем вам нужен новый ViewController?Вы должны просто добавить свой View как Subview и обрабатывать все с помощью ViewController of someView

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...