Когда представление отклонено, представление представления бросает EXC_BAD_ACCESS - PullRequest
2 голосов
/ 09 марта 2012

Я преобразую свое приложение для 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];

1 Ответ

4 голосов
/ 13 марта 2012

Итак, я понял!

XIB, которые я создавал для версии для iPad, были окнами, а не представлениями.Я воссоздал все это как представления и установил его, и он работал просто отлично!

...