2013-11-30 2 views
0

У меня проблема с увольнением текущего viewController и презентацией другого. У меня есть текущий viewController с именем viewController3 с MKMapView. Когда я пытаюсь открыть другой viewController из viewController3, появляется предупреждающее сообщение:увольнение с представлением viewController не работает и появляется предупреждающее сообщение

«Предупреждение: попытка представить <ViewController3: 0xb84e270> по адресу <ViewController2: 0xb8485e0> во время презентации!»

"Попытка отклонить модальный контроллер представления которого вид не отображается в данный момент само = <ViewController2: 0xb8485e0> modalViewController = <ViewController3: 0x9b55130>"

обновление:

это предупреждение также показано

«Предупреждение: попытка представить <ViewController4_modified: 0x9b79c70> по адресу <ViewController3: 0xb18ebc0>, чей вид отсутствует в окне иерархия!»

здесь код в viewController3.m файл

- (IBAction)testButton:(id)sender 
{ 
ViewController4_modified *VC4 = [self.storyboard instantiateViewControllerWithIdentifier:@"ViewController4_modified"]; 

VC4.formUserNameTextInVC3 = self.mapUserNameTextInVC2; 

[self.presentingViewController dismissViewControllerAnimated:YES completion:nil]; 

NSLog(@"VC3 is dismissed"); 

[self presentViewController:VC4 animated:YES completion:nil]; 

} 

Я также использую тот же код для перехода образуют viewController2 к viewController3. Любая помощь будет оценена по достоинству. Спасибо заранее!

ответ

0

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

[self.presentingViewController dismissViewControllerAnimated:YES completion: ^{ 
      NSLog(@"VC3 is dismissed"); 
     [self presentViewController:VC4 animated:YES completion:nil]; 
    }]; 

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

+0

Я попробовал его между viewController2 и viewController3, но проблема в том, когда viewController3 (тот, который имеет MKMapview) грузы из viewController2, он просто загружает быстро и весь viewController заморожен и походит на то, что каждая вещь отключена:/ –

+0

Хорошо, в ваших ошибках кажется, что ваш вид для ViewController2 не появляется. Это просто регулярный viewController? – user2277872

+0

в моем приложении, все viewController (s) являются регулярными .. извините за непонятное объяснение, но проблема в viewController3 ... даже инструкция журнала ** NSLog (@ "VC2 уволен") ** не отображается –

1

Я нашел решение.

вместо использования:

[self dismissViewControllerAnimated:YES completion:nil]; 

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

[[[self parentViewController] parentViewController] dismissViewControllerAnimated:YES completion:nil]; 
Смежные вопросы