Я конвертирую свое приложение для 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];
mapView *MapView = nil;
Боже! Вы поняли это неправильно. Только классы (например, NSString, UIWindow) должны начинаться с заглавных букв. И почему подкласс UIView_Controller_ называется Map_View_? Запутанно, черт возьми. - person Matthias Bauch   schedule 09.03.2012