iOS 12.3.1, метод Pop или метод Remove не работают должным образом в navigationController, особенно в iPhone X, но работают в iPhone 8 - PullRequest
0 голосов
/ 26 июня 2019

У меня три стека навигации в стеке навигации. Скажем, 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, поэтому не знаю больше о быстрой разработке. Пожалуйста, помогите мне. Большое вам спасибо.

...