Добавить строку в табличном представлении из контроллера представления панели поиска в другой контроллер представления быстро - PullRequest
0 голосов
/ 18 июня 2020

Можно ли добавить данные, поступающие из контроллера текущего представления панели поиска в контроллер представления зоны.

когда я нажимаю на панель поиска, появляется текущий контроллер представления, после чего я выбираю нужную ячейку, выбранную, она исчезает, и данные проходят Контроллер текущего представления к контроллеру представления зоны.

Вот строка поиска Контроллер текущего представления

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {


       let cell = tableView.dequeueReusableCell(withIdentifier: "Cell") as! CellForShowAllTVC

        print("Did Select call ***********")


        let storyboard = UIStoryboard(name: "Rider", bundle: nil)
        let vc = storyboard.instantiateViewController(withIdentifier: "yourzoneVC") as! YourZoneVC

vc.arryOfCityName.append(arryOfCity[indexPath.row]) //Pass array to zone View Controller but its not worked

 self.dismiss(animated: true, completion: nil)



    }

Вот контроллер Zone View

  override func viewDidAppear(_ animated: Bool) {

        print(arryOfCityName)

        yourZonTV.reloadData()
    }

func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {

        return arryOfCityName.count 

    }
//But its show data coming from search bar

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {

        let storyboard = UIStoryboard(name: "Rider", bundle: nil)

Cell3ForYourZone
        let vc = storyboard.instantiateViewController(withIdentifier: "zoneinmapviewVC") as! ZoneInMapViewVC

        vc.getCityCompare1 = arryOfCityName[indexPath.row] as? String

        navigationController?.pushViewController(vc, animated: true)

    }

1 Ответ

0 голосов
/ 18 июня 2020

Потому что при передаче данных вы создали новый. Вы можете использовать делегатов

И не создавать новый viewController

Пример кода ниже:

protocol AViewControllerDelegate: AnyObject {
  func aViewController(add item: <#YourObject#>)
}

final class AViewController: UIViewController {

  weak var delegate: AViewControllerDelegate?

  lazy var bViewController: BViewController  = {
    // UIStoryboard...
    let controller = BViewController()
    self.delegate = controller
    return controller
  }()

  func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {

    delegate?.aViewController(add: <#YourObject#>)
  }
}


final class BViewController: UIViewController {


}
extension BViewController: AViewControllerDelegate {

  func aViewController(add item: <#YourObject#>) {
    // add and reload data
  }
}
...