Контроллер Push / Pop View EXC_BAD_ACCESS - PullRequest
1 голос
/ 18 февраля 2011

Кто-нибудь знает, почему, если я нажимаю / выдвигаю localSearchViewController, я получаю ошибку EXC_BAD_ACCESS после примерно 5 нажатий / всплывающих окон

if (localSearchViewController == nil)
    localSearchViewController = [[LocalSearchViewController alloc] init];

    CBAAppAppDelegate *app = (CBAAppAppDelegate *) [[UIApplication sharedApplication] delegate];

    [app.navBarController.navigationBar setHidden:YES];

    [app.navBarController pushViewController: localSearchViewController
                                    animated:YES];

Ответы [ 2 ]

0 голосов
/ 18 февраля 2011

Я не знаю, является ли это причиной вашего сбоя, но если вы не перезаписали метод init вашего контроллера представления, вы должны вместо этого использовать его назначенный инициализатор:

- (id)initWithNibName:(NSString *)nibName bundle:(NSBundle *)nibBundle

И если у вас есть этот метод, определенный в вашем файле реализации, убедитесь, что вы также вызываете super для него.

Если это не решит вашу проблему, вы можете попытаться точно определить, где происходит сбой вашего кода,установка точек останова через этот метод и внутри localSearchViewController.Скорее всего, это проблема избыточного выпуска где-то в вашем коде.

[изменить, чтобы добавить]

Вот как должен выглядеть ваш код для инициализации контроллера представления:

localSearchViewController = [[LocalSearchViewController alloc] initWithNibName:@"YourNibName" bundle:nil];

0 голосов
/ 18 февраля 2011

Заключите это в фигурные скобки.

if (localSearchViewController == nil) {
    localSearchViewController = [[LocalSearchViewController alloc] init];

    CBAAppAppDelegate *app = (CBAAppAppDelegate *) [[UIApplication sharedApplication] delegate];

    [app.navBarController.navigationBar setHidden:YES];

    [app.navBarController pushViewController: localSearchViewController
                                animated:YES];
}
...