2010-10-19 3 views
0

Модальный контроллер просмотра не вызывает его метод dealloc, когда он отклоняет себя. Я представил его, используя:Метод dealloc не вызывается в функции rejectModelViewController?

ViewController * vl = [[ViewController alloc] initWithNibName:@"ViewController" bundle:[NSBundle mainBundle]]; 
self.viewLink = vl; 

[mainMenu stop]; 
[mainMenu setCurrentTime:0.0]; 

[vl release]; 

[self presentModalViewController:viewLink animated:NO]; 

Любые идеи?

Спасибо,

Martin

ответ

0

viewLink Предполагая, что это @property(retain), оно не освобождается, потому что объект является сохранение контроллер представления модально.

+0

Спасибо. Поэтому я должен освободить viewLink, когда вернусь с моего модального контроллера? Каков наилучший способ сделать это - должен ли я [самостоятельный выпуск] в модульном контроллере просмотра? – GuybrushThreepwood

+0

@Ohnomycoco: Вы должны установить 'viewLink' в' nil', когда закончите с ним. – Chuck

+0

Спасибо. Как я могу время time self.viewLink = nil запускать, когда modalviewcontroller уволен? – GuybrushThreepwood

2

Возможно, вам не нужно устанавливать viewLink, потому что когда вы представляете контроллер модального вида, ссылка на него будет храниться в self.modalViewController. Это автоматически будет установлено на nil после того, как вы упустите контроллер, и анимация увольнения закончится.

+0

Спасибо. Я попытался установить следующий код: теперь он отключает viewLink = [[ViewController alloc] initWithNibName: @ "ViewController" bundle: [NSBundle mainBundle]]; \t \t \t [mainMenu stop]; \t [основнойMenu комплектCurrentTime: 0.0]; \t \t [viewLink release]; \t \t [self presentModalViewController: viewLink animated: NO]; – GuybrushThreepwood

+0

Eeee, вам не кажется, что вы должны освободить viewLink ПОСЛЕ того, как вы вызываете presentModalViewController? ;-) Теперь вы отпустите его до его использования! –