2015-12-23 6 views
2

Я пытаюсь убрать контроллер представления и представить другой в одно и то же время. Когда выполняется Level1Controller() и вызывает self.dismissViewController(), я хотел бы, чтобы он отвел меня в другой контроллер вида под названием EndScene().Swift: rejectViewController и Instantiate другой ViewController

Это код, который доставил меня ближе всего.

self.dismissViewControllerAnimated(true, completion: {() -> Void in 
     let storyboard = UIStoryboard(name: "Main", bundle: nil) 
     let nextViewConroller = storyboard.instantiateViewControllerWithIdentifier("endscene") 
     self.presentViewController(nextViewConroller, animated: false, completion: nil) 
    }) 
+0

И какова реальная проблема, с которой вы сталкиваетесь @Rogue Studios? –

+0

@RaphaelOliveira Он просто загрузит меня обратно в корневой viewcontroller, и это сообщение об ошибке «2015-12-23 17: 47: 35.333 Spin Game [6466: 2789372] Warning: попытка представить on чей вид не находится в иерархии окон! ' –

+0

Получил, напишет ответ. –

ответ

2

Вместо вызова dismissViewControllerAnimated на Level1Controller, вызовите его на контроллере представления, представившей его. Затем в блоке завершения вы можете представить EndScene так же, как и вы. Ошибка происходит потому, что на самом деле, поскольку вы удалили Level1Controller из окна, нет смысла использовать его для представления другого контроллера вида.

Window -> ParentViewController (назовем отклонять здесь) -> Level1Controller

Window -> ParentViewController (в настоящее время EndScene по завершению) -> EndScene

Вы, вероятно, придется уведомить родителей о Level1Controller, что отменить действие было выполнено, и вы можете сделать это делегатом. Другой вариант (я его не тестировал) - оставить увольнение в Level1Controller и присутствовать с presentingViewController.

self.presentingViewController.presentViewController... 

Не уверен, хотя, если presentingViewController будет ноль, когда блок завершение вызова.

+0

Спасибо, я попробую это скоро. Я знаю, как это происходит. –

+0

Привет, Rogue, я рад, что вы решили свою проблему. Какое решение вы использовали? –

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

  • Нет связанных вопросов^_^