2017-01-30 11 views
0

У меня возникла неожиданная проблема с передачей var через Segue в VC. Работал отлично в Objective C и в ранней версии Swift. Вот что я делаю:Swift 3, проходящий через серию Segues/ViewControllers

Я извлекаю набор переменных из загруженного json-файла, чтобы заполнить TableViewCell, а затем передать отображаемые переменные Cell и другие вары, связанные с этим выбором Cell, в DetailViewController. Это можно сделать для Segue, настроив vars на DetialViewController. Затем destination.myVarToSend = myVar .....

Это все работает нормально.

Однако я хочу передать две из этих переменных из DetailVC в ThirdViewController. Я поставил все, как раньше, но я получаю нуль в переменной на ThirdViewController ?? Есть идеи? Есть что-то, чего я не хватает?

The ThirdViewController на самом деле является MapView, а проходящие через него vars - Double. Попытки передать их не работали, так что я экспериментирую и пытаюсь сделать то же самое с String vars. (Конечно, я изменил данные в json-файле на текстовые строки).

Я не размещаю ни одного кода на данный момент, так как это все стандартные материалы, но при необходимости можно делать. :-)

Большое спасибо

ответ

0

Я только что нашел ответ на аналогичный вопрос, который прекрасно работает для меня, по адресу: How do you pass data between view controllers in Swift?

final class Shared { 
static let shared = Shared() //lazy init, and it only runs once 

var stringValue : String! 
var boolValue : Bool! 
} 
To set stringValue 

Shared.shared.stringValue = "Hi there" 
to get stringValue 

if let value = Shared.shared.stringValue { 
    print(value) 
}