[Супер сделка] в сделке UIViewController дает проблемы в iPad - PullRequest
1 голос
/ 01 июля 2011

Я работаю над приложением, в котором я помещаю один контроллер представления в UINavigationController и немедленно освобождаю его, поскольку контроллер навигации сохраняет его. Когда я открываю контроллер представления, метод dealloc вызывается, как и ожидалось, но Проблема в том, что приложение выходит из строя. Если я наблюдаю в GDB, включив NSZombie, он говорит, что -[MyViewController isKindOfClass:]: message sent to deallocated instance 0x6847a00. Если я удаляю [super dealloc] из метода dealloc моего контроллера представления, он работает нормально . У меня нет ничего другого в методе dealloc, кроме [super dealloc]. В чем здесь может быть проблема, может ли кто-нибудь помочь, пожалуйста. Фрагмент кода приведен ниже:

MyViewController *myViewController = [[MyViewController alloc] initWithNibName:nil bundle:nil];
myViewController.path = selectedPath; //very important to set path here
myViewController.parentViewController = self;
[self cleanBookshelf];
[self.navigationController pushViewController:myViewController animated:NO];
[myViewController release];
[indicatorView removeFromSuperview];
[loadingindicator stopAnimating];

и я выхожу в один метод действия myViewController как

-(IBAction)goBack:(UIButton*)sender{
[self.navigationController popViewControllerAnimated:YES];

}

1 Ответ

0 голосов
/ 01 июля 2011

Просто догадываюсь, но я подозреваю, что проблема в этой строке:

myViewController.parentViewController = self;

Свойство parentViewController UIViewController помечено readonly, и я бы воспринял это как сильное сообщение, которое вам не следуетне связывайтесь с этим.

...