Итак, у меня есть VC, который встроен в контроллер навигации, который, в свою очередь, встроен в родительский VC с еще 2 контейнерами.Для всех трех контейнеров я использую функцию (из Parent VC), чтобы манипулировать ими, чтобы показать их.
Как видно на картинке, когда я нажимаю на кнопку 3 строки в Voice VC, происходит сбой при Could not cast value of type 'UINavigationController' (0x1b5614200) to 'Pro.VoiceParentViewController
Если я вставляю только Voice Parent VC .. мои кнопки назад больше не работают _ = navigationController?.popToRootViewController(animated: true)
причина
po navigationController -> nil
РЕДАКТИРОВАТЬ
class VoiceParentViewController: UIViewController {
@IBOutlet weak var container_voiceVC: UIView!
@IBOutlet weak var container_menuVC: UIView!
@IBOutlet weak var containerSettingsVC: UIView!
@IBOutlet weak var constraint_trailingVoiceContainer: NSLayoutConstraint!
@IBOutlet weak var constraint_leadingVoiceContainer: NSLayoutConstraint!
override func viewDidLoad() {
super.viewDidLoad()
}
func menuTouched() {
constraint_leadingVoiceContainer.constant = self.view.bounds.maxX
constraint_trailingVoiceContainer.constant = 2*self.view.bounds.maxX
UIView.animate(withDuration: 0.6, delay: 0, usingSpringWithDamping: 1.0, initialSpringVelocity: 1.0, options: .curveEaseInOut, animations: {
self.view.layoutIfNeeded()
}) { (isCompleted) in
}
}
.....
class VoiceViewController: UIViewController, UITableViewDataSource, UITableViewDelegate {
override func viewDidLoad() {
super.viewDidLoad()
@IBAction func action_menu(_ sender: Any) {
(self.parent as! VoiceParentViewController).menuTouched()
}
........
class NewConversationViewController: UIViewController, UITableViewDelegate, UITableViewDataSource {
@IBOutlet weak var mainTableView: UITableView!
override func viewDidLoad() {
super.viewDidLoad()
@IBAction func backButtonPressed(_ sender: Any) {
_ = navigationController?.popToRootViewController(animated: true)
}