Прокрутка до определенной строки в определенном разделе, когда пользователь возвращается к tableView? - PullRequest
0 голосов
/ 23 марта 2020

У меня есть два ViewController, первый из которых содержит tableView и отображает данные в нескольких разделах и строках. Когда пользователь нажимает на определенную строку внутри определенного раздела, он будет перенаправлен на второй View Controller, где будет отображаться дополнительная информация о выбранной ячейке. Чего я хочу добиться, так это когда пользователь go возвращается от второго контроллера представления к первому, я хотел бы, чтобы tableView автоматически прокручивал до местоположения последней выбранной ячейки пользователем (т.е. go назад, где он оставил). tableView в). Я использую протокол для передачи информации от второго контроллера представления к первому, который будет использоваться для отображения данных внутри tableView.

Это код, который я пытался достичь того, что упомянул выше, однако, пользователь не выполняет прокрутку до последней выбранной ячейки.

Код внутри контроллера первого вида:

    import UIKit

    class firstViewController: UIViewController {

        var sortBy: String = "None"

        var isSearching: Bool = false

        var filtersApplied: Bool = false

    var originalUniversalBeamsArrayDataExtractedFromTheCSVFileUsingTheParserContainingAllData = [IsectionsDimensionsParameters]()

    var universalBeamsDataArrayReceivedFromFilterDataVCViaProtocol = [IsectionsDimensionsParameters]()

        var universalBeamsDataArrayReceivedFromSortDataVCViaProtocol = [IsectionsDimensionsParameters]()

        var universalBeamsDataArrayAsPerTypedSearchCriteria = [IsectionsDimensionsParameters]()

        var universalBeamsArrayContainingAllSectionSerialNumberOnlyDefault: [String] = []

        var universalBeamsArrayContainingAllSectionSerialNumberOnlySortedInAscendingOrDescendingOrder: [String] = []

        let universalBeamsTableView = UITableView()

    override func viewDidLoad() {

            super.viewDidLoad()

            setupTableView()

            view.addSubview(universalBeamsTableView)

    }

    extension BlueBookUniversalBeamsVC: ProtocolToPassDataBackwardsFromDataSummaryVcToPreviousVc {

    func dataToBePassedUsingProtocol(modifiedArrayContainingAllUBsDataToBePassed: [IsectionsDimensionsParameters], modifiedArrayContainingSectionSerialNumbersDataToBePassed: [String], passedSortBy: String, passedFiltersApplied: Bool, passedIsSearching: Bool, passedSelectedTableSectionNumberFromPreviousVc: Int, passedSelectedTableRowNumberFromPreviousVc: Int) {

            self.sortBy = passedSortBy

            self.isSearching = passedIsSearching

            self.filtersApplied = passedFiltersApplied

            if sortBy == "None" && isSearching == false && filtersApplied == false {

                originalUniversalBeamsArrayDataExtractedFromTheCSVFileUsingTheParserContainingAllData = modifiedArrayContainingAllUBsDataToBePassed

                universalBeamsArrayContainingAllSectionSerialNumberOnlyDefault = modifiedArrayContainingSectionSerialNumbersDataToBePassed

            } else if (sortBy == "Sorted by: Section Designation in ascending order" || sortBy == "Sorted by: Depth of Section in ascending order" || sortBy == "Sorted by: Width of Section in ascending order" || sortBy == "Srted by: Area of Section in ascending order" || sortBy == "Sorted by: Section Designation in descending order" || sortBy == "Sorted by: Depth of Section in descending order" || sortBy == "Sorted by: Width of Section in descending order" || sortBy == "Srted by: Area of Section in descending order") && isSearching == false && filtersApplied == false {

                universalBeamsDataArrayReceivedFromSortDataVCViaProtocol = modifiedArrayContainingAllUBsDataToBePassed

                universalBeamsArrayContainingAllSectionSerialNumberOnlySortedInAscendingOrDescendingOrder = modifiedArrayContainingSectionSerialNumbersDataToBePassed

            } else if sortBy == "None" && isSearching == false && filtersApplied == true {
                universalBeamsDataArrayReceivedFromFilterDataVCViaProtocol = modifiedArrayContainingAllUBsDataToBePassed

            } else if sortBy == "None" && isSearching == true && filtersApplied == false {

                universalBeamsDataArrayAsPerTypedSearchCriteria = modifiedArrayContainingAllUBsDataToBePassed

            }

self.universalBeamsTableView.scrollToRow(at: IndexPath.init(row: passedSelectedTableRowNumberFromPreviousVc, section: passedSelectedTableSectionNumberFromPreviousVc), at: UITableView.ScrollPosition.top, animated: true)


            self.universalBeamsTableView.reloadData()

        }

    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...