Swift: отклонение ViewController и создание другого ViewController
Я пытаюсь закрыть контроллер представления и одновременно представить еще один. Когда Level1Controller()
сделано и вызывает self.dismissViewController()
Я хотел бы, чтобы он взял меня на другой контроллер представления под названием EndScene()
,
Это код, который сделал меня ближе всего.
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)
})
1 ответ
Вместо звонка dismissViewControllerAnimated
на Level1Controller
, вызовите это на контроллере представления, который представил это. Затем в блоке завершения вы можете представить EndScene
так же, как вы делаете. Ошибка происходит потому, что на самом деле, так как вы удалили Level1Controller
из окна не имеет смысла использовать его для представления другого контроллера представления.
Окно -> ParentViewController (здесь можно вызвать вызов) -> Level1Controller
Окно -> ParentViewController (представить EndScene по завершении) -> EndScene
Вам, вероятно, придется уведомить родителей Level1Controller
что действие отмены было выполнено, и вы можете сделать это делегатом. Другой вариант (я не проверял это), чтобы сохранить увольнение в Level1Controller
и подарок от presentingViewController
,
self.presentingViewController.presentViewController...
Хотя не уверен, что если presentingViewController
будет ноль, когда блок завершения вызывается.