Передача данных в ViewController, который запускается внешним событием - PullRequest
0 голосов
/ 30 мая 2018

Я настроил схему URL для своего приложения, которая будет открывать ее из веб-браузера.При получении приложением оно представляет AViewController.

. У меня также есть ViewController, BViewController, который содержит некоторые данные.В идеале я хотел бы иметь возможность передавать эти данные от BViewController до AViewController, если BViewController открыто во время активации схемы URL.

Поскольку схема URL запускает функцию вAppDelegate, у меня нет возможности передавать данные из B в A.

Каков наилучший способ передачи данных?

Единственные решения, которые я могуПредставьте себе:

  • Установка и получение глобальной переменной для каждого фрагмента данных
  • Когда вызов схемы URL получен в AppDelegate, извлечение данных из B путем доступа к свойствам объекта и установки их в A

Ни одно из этих решений меня полностью не устраивает, конечно, не первое.

Есть ли лучшеспособ решить это?

Заранее спасибо.

1 Ответ

0 голосов
/ 30 мая 2018

Если у вас есть…

class Object {
   var someData…
}

class BViewController {
    var object: Object!

    func updateObject() { 
        object.someData = …       
    }
}

class AViewController {
    var object: Object!
}

Тогда в AppDelegate что-то вроде этого (не настоящий код!)…

func handleURL() {

   if let b = rootViewController as? BViewController { 
       let a = AViewController()
       a.object = b.object
       rootViewController = a
   }
}
...