2016-11-21 2 views
1

Так у меня есть структуры в моей BaseViewControllerAppend значение в Struct в Swift 3

struct NewUserStruct { 
    var firstName: String = "Default First Name" 
    var lastName: String = "Default Last Name" 
} 

Затем я использую это в передающем VC

let firstNameReg = inputFirstName.text 
    let lastNameReg = inputLastName.text 

    let newuser = NewUserStruct(firstName: firstNameReg!, lastName: lastNameReg!) 
    print(newuser.firstName) 
    print(newuser.lastName) 

Это прекрасно работает и печатает первый и последний имя. Я не думаю, что я сохраняю это в структуре, хотя! как тогда, когда я называю структура в окончательном ВК:

let newuser = NewUserStruct() 
    let firstNameLog = newuser.firstName 
    print(newuser.firstName) 

Он печатает по умолчанию Имя строки я поставил в BaseViewController. Как добавить структуру со значениями в отправляющем VC?

+2

Что вы ожидаете произойдет? Вы создали новый экземпляр пользователя с помощью 'NewUserStruct()', и, конечно, он печатает значение по умолчанию, если вы хотите использовать 'newuser', который вы создали на отправляющем VC, вы должны отправить его на окончательный VC – Tj3n

+0

, как вы передаете данные между контроллерами просмотров –

+0

То, что я сделал для Struct в baseviewcontroller. Чтобы сохранить значения переменных. Я предполагаю, что создаю новый экземпляр, когда я действительно хочу добавить существующий. – Thegasman2000

ответ

1

Вам необходимо понять концепцию передачи значений (экземпляров) с одного контроллера на другой. если вы хотите использовать значения экземпляра newuser в другом контроллере, вам необходимо передать его с одного контроллера на другой с помощью prepareForSegue, но вы создаете новый экземпляр NewUserStruct() в другом контроллере или вы можете создавать общие свойства с помощью static или использовать их повсюду.

struct NewUserStruct { 
static var firstName: String = "Default First Name" 
static var lastName: String = "Default Last Name" 
} 

NewUserStruct.firstName = "new name" 

в другой контроллер

print(NewUserStruct.firstName) // new name 
+1

Отличное спасибо! – Thegasman2000

+0

@ Thegasman2000 Это работает только в том случае, если вам нужен только один «NewUserStruct». – Alexander

+0

Да, чтобы добавить новую регистрацию в начале приложения, так что есть только когда-либо. – Thegasman2000

Смежные вопросы