Я боролся с этим последние несколько дней и не могу найти никакого решения, поэтому прошу у вас совета.
У меня есть два UIViewController: NewPostUIViewController и SettingsUIViewController. Во втором у меня есть поле:
id<SettingsUIViewControllerDelegate> delegate
и первый реализует протокол
SettingsUIViewControllerDelegate
При нажатии кнопки в NewPostUIViewController выполняется следующий код:
SettingsUIViewController *settingsUIViewController = [[SettingsUIViewController alloc] initWithNibName:@"SettingsView" bundle:nil];
settingsUIViewController.title = NSLocalizedString(@"Settings", @"Settings view title");
settingsUIViewController.delegate = self;
[self presentModalViewController:settingsUIViewController animated:YES];
[settingsUIViewController release];
когда я хочу отклонить настройки UIViewController, который я вызываю (код в настройках UIViewController):
[delegate settingsAreDone:sender];
и настройкиAreDone выглядит следующим образом (код в NewPostUIViewController):
[self dismissModalViewControllerAnimated:YES];
На этом все заканчивается:
[CALayer release]: message sent to deallocated instance 0x5a76840
Я попытался отладить код, установив точку останова в методах выпуска обоих контроллеров представления, но эти методы вызываются так часто, что трудно сказать, что может быть причиной этой проблемы.
Есть идеи?