我對UINavigationController
堆棧有點困惑。 我從我的rootViewController("ViewController")
中顯示我的UIViewController("SubmitRequestViewController")
。ViewController從我的rootViewController多次調用
下面是我的代碼:
let controller = SubmitRequestViewController.init(nibName: "SubmitRequestViewController", bundle: nil)
self.navigationController?.pushViewController(controller, animated: true)
現在我只是想從SubmitRequestViewController
回來我rootViewController
。
//Home Button
@objc fileprivate func backHome() {
let _ = self.navigationController?.popToRootViewController(animated: true)
}
//Back Button
@objc fileprivate func backButton() {
let _ = self.navigationController?.popViewController(animated: true)
}
如果我再次去我的「SubmitRequestViewController
」它獲得兩次電話。
所以這是持續的。如果我將重複上述步驟,它會多次呼叫。
現在我得到的是: -
navigationController.viewControllers.count
是越來越continuesly增加。
我想彈出到navigationController
但仍然存在。
我想這也: -
self.navigationController?.dismiss(animated: true, completion: nil)
其實我開火,我DrawerViewController類的通知: -
//Submit Request
else if itemArray[indexPath.row].contains("SUBMIT REQUEST") == true {
tableView.deselectRow(at: indexPath, animated: false)
self.dismiss(animated: true, completion: nil)
NotificationCenter.default.post(name: Notification.Name(rawValue : AssessNowKyes.submitRequest), object: nil)
}.
我打電話在我ViewControllerClass: -
override func viewDidLoad() {
super.viewDidLoad()
NotificationCenter.default.addObserver(self, selector: #selector(submitRequestClicked), name: Notification.Name(rawValue : AssessNowKyes.submitRequest), object: nil)
}
//Submit Request Clicked
@objc fileprivate func submitRequestClicked() {
let controller = SubmitRequestViewController.init(nibName: "SubmitRequestViewController", bundle: nil)
self.navigationController?.pushViewController(controller, animated: true)
}
我正在這樣做。我不知道我必須刪除Observer嗎?因爲我也嘗試過。它不工作。
你可以嘗試在主線程上運行popviewcontroller方法嗎? – Basheer
remove let _ =,self.navigationController?.popToRootViewController(animated:true)是什麼需要 –
U只表示這個self.navigationController?.popViewController(animated:true)? – kishor0011