1

Я пытаюсь представить контроллер представления по модулю с другого контроллера вида, который является вторым видом внутри UINavigationController. Но он продолжает давать ошибку и сбой. Приложение пыталось представить модально активный контроллерПриложение iOS попыталось представить модальный активный контроллер

Я не знаю, что это значит. Вот как я звоню.

UIStoryboard *storyBoard = [UIStoryboard storyboardWithName:@"MainStoryboard_iPhone" bundle:nil]; 
    FBPreviewPostViewController *previewPostViewController = [storyBoard instantiateViewControllerWithIdentifier:@"FBPreviewPostViewController"]; 
    previewPostViewController.delegate = self; 
    previewPostViewController.selectedImg = selectedImage; 
    [self presentViewController:previewPostViewController animated:YES completion:nil]; 

Благодаря

+0

Не могли бы вы вставить полное сообщение об аварии? –

+0

*** Завершение приложения из-за неперехваченного исключения «NSInvalidArgumentException», причина: «Приложение попыталось представить модально активный контроллер ». *** Первый стек бросить вызов: (0x1fc5012 0x1985e7e 0x9b3111 0x9b4167 0x2a035 0x13835b3 0x1f84376 0x1f83e06 0x1f6ba82 0x1f6af44 0x1f6ae1b 0x24a17e3 0x24a1668 0x8c9ffc 0x26a5 0x25d5) LibC++ abi.dylib: оконечный называется бросать исключение – Tarang

ответ

1

Вы можете попробовать следующий код

NSString *stbName = [[NSBundle mainBundle].infoDictionary objectForKey:@"MainStoryboard_iPhone"]; 
UIStoryboard *Mainstoryboard = [UIStoryboard storyboardWithName:stbName bundle:nil]; 
FBPreviewPostViewController *previewPostViewController = [Mainstoryboard instantiateViewControllerWithIdentifier:@"FBPreviewPostViewController"]; 
previewPostViewController.delegate = self; 
previewPostViewController.selectedImg = selectedImage; 
[self presentModalViewController:previewPostViewController animated:YES]; 
+2

И ваш путь и путь Ор по получение раскадровки излишне сложно. Вы можете просто использовать self.storyboard. – rdelmar

+0

Deepesh: Разные в этих строках кода? похоже, что только первая строка отличается. Также presentModalViewController устарел с iOS 6. – Tarang

2

Ошибка указывает на то, что контроллер представления представлен дважды, что не допускается.

Я мало знаю о раскадровки и вашем приложении, возможно, FBPreviewPostViewController был представлен раскадровки. Вы можете проверить, находится ли она в иерархии взглядов, проверяя, что значение viewController.isViewLoaded && viewController.view.window истинно или нет.

Кстати, вы используете раскадровки, почему бы не использовать segue?

+0

спасибо за ответ. Я проверю иерархию представления. Я не использую segue, потому что я вызываю этот viewcontroller из вызова кнопки листа действия. – Tarang

Смежные вопросы