Я преобразую свое приложение для iPhone в версию для iPad, создаю новые XIB для iPad и подключаю их к существующим целевым классам C, используя имя ~ ipad XIB.
В версии для iPhone я использую контроллер навигации, чтобы вернуться назад к приложению. Это должно хорошо работать в iPad, но, хотя контроллер навигации действительно появляется, он не отвечает. Фактически, это невидимо для любого взаимодействия, если за навигационным контроллером находится карта, и вы дважды щелкаете назад, вы просто увеличиваете карту, на которой щелкнули.
Итак, я включаю в представление iPad кнопку, которая должна делать то же самое. На прессе я звоню
[[self navigationController] popViewControllerAnimated: YES];
Когда я звоню, я получаю EXC_BAD_ACCESS. Я вошел в жуткий режим зомби, который дает мне это
*** -[UIWindowLayer superlayer]: message sent to deallocated instance 0x83bb9f0
Я определил, что 0x83bb9f0
представляет слои self.view.layer
Я использую ARC для обработки своих распределений и освобождений.
ВОПРОС : Как я могу помешать self.view.layer
разблокировать? или как я могу выделить его снова в нужное время, чтобы я не получил эту ошибку?
Я могу предоставить больше кода, если это необходимо. Большое спасибо !!
Редактировать: Здесь создается главная страница (целевая страница) и контроллер навигации
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
landingPage *LandingPage = [[landingPage alloc] initWithNibName:@"landingPage" bundle:nil];
self.navigationController = [[UINavigationController alloc] initWithRootViewController:LandingPage];
self.window.rootViewController = self.navigationController;
// [self.navigationController pushViewController:LandingPage animated:YES];
[self.window makeKeyAndVisible];
return YES;
Тогда вот как называется внутренний взгляд:
mapView *MapView = nil;
MapView =[[mapView alloc] initWithNibName:@"mapView" bundle:nil];
[self.navigationController pushViewController:MapView animated:YES];