В моем недавнем проекте я использовал presentviewController для организации переключения видов. Но есть странная проблема.Сбой с участием presentViewController
Сначала я написал демо-версию на git-хабе: test present view. Надеюсь, это затруднит понимание проблемы.
Во-вторых, я показываю, что я сделал в демо: 1) Контроллер вид корень T1RootViewController, он имеет свойство:
@property (strong, nonatomic) T1TopViewController1 *top1VC;
При загрузке, он добавляет T1TopViewController1 в качестве единственного подвид:
self.top1VC = [[T1TopViewController1 alloc] initWithNibName:@"T1TopView1" bundle:nil];
[self.view addSubview:self.top1VC.view];
2) T1TopViewController1 обладает свойством:
@property (strong, nonatomic) T1TopViewController2 *topVC2;
он также имеет кнопку, которая настоящий T1TopViewController2, когда она нажата:
self.topVC2 = [[T1TopViewController2 alloc] initWithNibName:@"T1TopView2" bundle:nil];
[self presentViewController:self.topVC2 animated:NO completion:nil];
3) T1TopViewController2 почти такой же, как T1TopViewController1, за исключением того, что она представляет T1TopViewController3
4) T1TopViewController3 имеет одну кнопку, которая будет идти назад, чтобы показать T1TopViewController1 при нажатии:
UIWindow *rootWin = [[UIApplication sharedApplication] keyWindow];
T1RootViewController *rootVC = (T1RootViewController *)rootWin.rootViewController;
[rootVC.top1VC dismissViewControllerAnimated:NO completion:nil];
Затем запустите это приложение, из T1TopViewController1, нажмите кнопку на каждом представлении до появления T1TopViewController3. Затем нажмите кнопку T1TopViewController3, это вернется к T1TopViewController1. Затем снова нажмите кнопку на T1TopViewController1. Теперь может возникнуть проблема:
1) КСН 5 имитатор, все прекрасно
2) КСН 6,1 тренажере или устройства, это будет крах, с бревном:
тест [699: c07] * - [T1TopViewController2 isKindOfClass:]: сообщение отправлено на освобожденный экземпляр 0x75ade30
Я действительно не знаю, что не так с моим кодом и как его исправить. Я буду очень благодарен за любую помощь.
p.s. Окружение dev - это mac os x 10.8.4, xcode 4.6.3. Проект позволяет ARC.