ModalViewController со встроенным навигационным контроллером - Невозможно закрыть - PullRequest
0 голосов
/ 11 февраля 2012

Я представляю modalViewController, который на самом деле является контроллером навигации с одним представлением и пользовательской панелью навигации. Модальное представление выглядит нормально, как и ожидалось, но когда я пытаюсь удалить его из представления, используя [self dismissModalViewControllerAnimated: YES], я нажимаю «- [UINavigationController modalViewController]: сообщение отправлено на освобожденный экземпляр». Не могу понять это. Есть идеи?

Использование ModalViewController:

    // Make a navigation controller and add the view inside it
    MyViewController *evc=[[MyViewController alloc] initWithNibName:@"MyViewController" bundle:nil];
    //UINavigationController *nvc = [[UINavigationController alloc] initWithRootViewController:evc];
    UINib *nib = [UINib nibWithNibName:@"UINavigationBarWithBackgroundImage" bundle:nil];
    UINavigationController *nvc = [[nib instantiateWithOwner:nil options:nil] objectAtIndex:0];
    [nvc setViewControllers:[NSArray arrayWithObject:evc]];
    evc.delegate=self;
    [evc release];
    [self presentModalViewController:nvc animated:YES];
    [nvc release];

и пытаюсь его удалить. Вот где появляется ошибка:

    [self dismissModalViewControllerAnimated:YES]; 

Ответы [ 2 ]

0 голосов
/ 11 февраля 2012

Есть ли причина, по которой вы загружаете два отдельных кончика, чтобы показать этот модал? Вам не нужно загружать перо, содержащее контроллер навигации, чтобы это работало.

Попробуйте что-то вроде этого:

// Make a navigation controller and add the view inside it
MyViewController *evc= [[MyViewController alloc] initWithNibName:@"MyViewController" bundle:nil];

UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:evc];

evc.delegate=self;

[self presentModalViewController:navController animated:YES];

[evc release];
[navController release]; 
0 голосов
/ 11 февраля 2012

Не уверен насчет этого, но все равно попробуйте:

Удалить

[nvc release]

и посмотрите, если

[self dismissModalViewControllerAnimated:YES];

теперь работает.

...