dismissModalViewController не работает должным образом - PullRequest
0 голосов
/ 21 июня 2011

Мое приложение находится в рабочем состоянии, но по какой-то причине мое приложение переходит к viewDidUnload, когда я получаю предупреждение о памяти при отключении модального контроллера представления.Я прошел весь мой код и не могу найти причину для этого.

В моем приложении нет UINavigationController.

код для MainView:

-(void) showInfo:(id) sender
{

  PhotoFeatureViewController *photoGalleryViewController = [[PhotoFeatureViewController alloc] initWithNibName:@"PhotoFeatureViewController" bundle:nil];

  photoGalleryViewController.modalPresentationStyle = UIModalPresentationFullScreen;
  photoGalleryViewController.modalTransitionStyle = UIModalTransitionStyleCrossDissolve;
  [photoGalleryViewController loadPhotogalleryImages:[itemTagArray objectAtIndex:[detailInfoBtn tag]]];


  [self presentModalViewController:photoGalleryViewController animated:YES];
  [photoGalleryViewController release];
}

коддля ModalView:

-(IBAction) dismiss
{

  [self.parentViewController dismissModalViewControllerAnimated:YES];

}

Ответы [ 5 ]

1 голос
/ 21 июня 2011

Попробуйте это

-(IBAction) dismiss 
{
    [self dismissModalViewControllerAnimated:TRUE];
}
1 голос
/ 21 июня 2011

Добавить функцию dismiss внутри photoGalleryViewController. И используйте его, как показано ниже:

-(IBAction) dismiss {
    [self dismissModalViewControllerAnimated:YES];
}
1 голос
/ 21 июня 2011

При отклонении попробуйте:

[self dismissModalViewControllerAnimated:YES];
0 голосов
/ 21 июня 2011

Знаете ли вы, что документы Apple рекомендуют использовать делегата с ModalViewController?Если у вас все еще возникают проблемы, может помочь другой подход, подобный этому:

По сути, вы определяете свойство делегата для контроллера представления, который представлен модально (т.е. photoGalleryViewController), и устанавливаете его в родительский контроллер представления, когдасоздайте photoGalleryViewController и представьте его модально.В dismiss {} вы используете делегат (родительский) для вызова метода, который обрабатывает dismissModalViewController.

Требуется настроить протокол для photoGalleryViewController и добавить протокол и метод делегата в определение контроллера родительского представленияно эти дополнительные шаги не потребуют больших усилий, и лучший дизайн, вероятно, окупится в долгосрочной перспективе.

Apple Doc - Руководство по программированию контроллеров представления http://developer.apple.com/library/ios/#featuredarticles/ViewControllerPGforiPhoneOS/ModalViewControllers/ModalViewControllers.html#//apple_ref/doc/uid/TP40007457-CH111-SW14

рекомендации по настройке контроллеров модального представления с использованиемделегаты: присутствует контроллер модального вида

0 голосов
/ 21 июня 2011

вы уже получили ответ: -

[self dismissModalViewControllerAnimated: TRUE];

...