Я хочу сделать фильтр для поиска (на отдельном экране) и думаю о том, как передавать данные для моего второго контроллера просмотра. Есть ли способ использовать что-то вроде указателей из C++? Когда все изменения в моем массиве (при втором просмотре) изменяются в первом представлении, то есть фактически мне не нужно копировать данные, потому что я использую указатель. Если я не могу использовать это, как я могу перенести свой массив после изменения обратно при первом просмотре?
Возможный дубликат Передача данных между контроллерами представления





не используйте указатель, передайте вам массив по Центр уведомлений.
Используйте Delegation для передачи данных обратно в предыдущий класс,
От первого класса,
class FirstClass: UIViewController, SecondClassDelegate {
@IBAction func goToSecondClass(_ sender: Any) {
performSegue(withIdentifier: "SecondClassId", sender: nil)
}
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if let destination = segue.destination as? SecondClass {
destination.delegate = self
}
}
func finishPassing(stringPassed: String) {
print(stringPassed)
}
}
Во втором классе,
protocol SecondClassDelegate {
func finishPassing(string: String)
}
class SecondClass: UIViewController {
@IBAction func btnPassDataPressed(_ sender: Any) {
var delegate: SecondClassDelegate?
delegate?.finishPassing(string: "Data passed from Second Class")
}
}
Здесь три пути: -
Если вам нужно передать данные предыдущему контроллеру, используйте Custom Delegation.
Если вам нужно передать данные следующему контроллеру, тогда просто назначьте данные следующей переменной контроллера представления.
Вы можете получить данные, сохранив их в Userdafults.
См. stackoverflow.com/questions/5210535/…