У меня три стека навигации в стеке навигации. Скажем, A, затем B, а затем C. Когда я нажимаю кнопку «Назад» на C. Это показывает мне A. Я хочу вытолкнуть или удалить C из стека, но кнопка «Назад» также удаляет B. Поэтому кнопка «Назад» не работает должным образом в iPhone X, но код работает должным образом в iPhone 6s и iPhone 8.
Я использовал приведенный ниже код для удалить UIView .
@IBAction func back(_ sender:UIButton) {
self.navigationController?.viewControllers.remove(at: 2)
}
Второй код для Pop UIView.
@IBAction func back(_ sender:UIButton) {
self.navigationController?.popViewController(animated: true)
}
VC A: КатегорияVC
class categoriesVC:UIViewController,UITableViewDelegate,UITableViewDataSource {
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if segue.identifier == "proceed" {
let dvc = segue.destination as! catListVC
dvc.id = self.id
dvc.count = self.count
dvc.titlee = self.titleeTxt
}
}
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
let id = globalCat[indexPath.row]["id"] as! Int
let count = globalCat[indexPath.row]["post_count"] as! Int
self.id = id
self.count = count
self.titleeTxt = (globalCat[indexPath.row]["title"] as? String)!
UserDefaults.standard.set(id, forKey: "cateid")
self.performSegue(withIdentifier: "proceed", sender: self)
}
}
VC B: catListVC
class catListVC:UIViewController,UICollectionViewDelegate,UICollectionViewDataSource,UICollectionViewDelegateFlowLayout,URLSessionDelegate {
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if segue.identifier == "proceed" {
let dvc = segue.destination as! detailTableVC
let ind = self.collection.indexPathsForSelectedItems
let cell = self.collection.cellForItem(at: ind![0]) as! dashboardCell
dvc.gotImg = cell.img.image ?? UIImage(named: "like")
dvc.id = self.sendid
dvc.titlee = cell.lblTitle.text!
}
}
func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
self.sendid = self.arrRes[indexPath.row]["id"] as! Int
self.performSegue(withIdentifier: "proceed", sender: self)
}
}
VC C: detailTableVC
class detailTableVC:UIViewController,UITableViewDataSource,UITableViewDelegate {
@IBAction func back(_ sender:UIButton) {
self.navigationController?.viewControllers.remove(at: 2)
//self.navigationController?.popViewController(animated: true)
}
}
спасибо за вашу помощь. По сути, я разработчик для Android, поэтому не знаю больше о быстрой разработке. Пожалуйста, помогите мне. Большое вам спасибо.