У меня есть viewController1
и viewController2
, который представлен модально, и я хочу использовать обработчик завершения, когда я увольняю второй, но я не могу получить реализацию. Я думал, что я должен написать функцию и просто поставить его там, как:Как правильно отменить modal viewcontroller с обработчиком завершения
viewController.dismissViewControllerAnimated(true, completion: funcToCall())
, но затем я получаю эту ошибку:
Cannot convert value of type '()' to expected argument type '(() -> Void)?'
Любой человек может объяснить мне, как я могу выполнить правильно обработчик завершения , пожалуйста?
тогда проблема была я была не использовать фигурные скобки? однако он работает, но это кажется только частично. когда я пытаюсь представить новый viewController, я все равно получаю эту ошибку: попытайтесь представить viewController3, чей вид не находится в иерархии окон! но потом как-то он ее представляет. это заводит меня орехами – i6x86
Я постараюсь объяснить это лучше. Я увольняю vc2 с завершением: уведомление и наблюдатель в vc1, который запускает segueWithIdentifier, когда vc2 предположительно отклоняется, но затем я получаю «попытку представить viewController3, чей вид не находится в иерархии окон». ошибка. теперь я все еще получаю его, но затем выполняется segue, и я не уверен, что это может привести к будущим проблемам. – i6x86
О, это еще одна ошибка. Пожалуйста, проверьте эту тему - http://stackoverflow.com/questions/26022756/warning-attempt-to-present-on-whose-view-is-not-in-the-window-hierarchy-s –