В моем TabBarViewController
я создаю UINavigationController и представляю его как модальный.
var navController = UINavigationController()
let messageVC = self.storyboard?.instantiateViewControllerWithIdentifier("MessagesViewController") as! MessagesViewController
self.presentViewController(self.navController, animated: false, completion: nil)
self.navController.pushViewController(messageVC, animated: false)
Внутри моего MessageViewController
, вот как я хочу отклонить его:
func swipedRightAndUserWantsToDismiss(){
if self == self.navigationController?.viewControllers[0] {
self.dismissViewControllerAnimated(true, completion: nil) //doesn't deinit
}else{
self.navigationController?.popViewControllerAnimated(true) //deinits correctly
}
}
deinit{
print("Deinit MessagesViewController")
}
Проблема заключается в том, что когда я добираюсь до корневого View Controller и пытаюсь уволить как дочерний, так и UINavigationController, мой MessagesViewController
deinit не вызывается. Что-то держит за него - скорее всего, UINavigationController