Как передать функцию между контроллерами представления, включая переменные внутри функции? - PullRequest
0 голосов
/ 10 октября 2019

Я работаю над проектом XCode, в котором у меня есть переменные определенной функции, которые я хочу использовать во всех имеющихся у меня контроллерах представления. Я хочу, чтобы некоторые данные (var oneName = oneNameTextField.text) передавались в массив другого контроллера вида (var arms = ["(oneName), ...]). Есть ли способ сделать это?

Я пытался изучить передачу по сегментам и т. Д., Но я хочу только сохранить данные в коде контроллера второго представления, а не показывать данные визуально.

В первом моем контроллерепеременные функции, которые я хочу передать второму контроллеру представления.

func userEnterData() {
   var oneName = weaponOneNameTextField.text
}

Во втором контроллере представления у меня есть массив, в который я хочу сохранить сохраненные переменные.

var weapons = ["\(oneName)",...]

Очевидная ошибка здесь в том, что он не знает, что такое oneName.

Вот несколько картинок действительного кода:

изображение контроллера первого вида

изображение контроллера второго вида

Спасибо за помощь!

1 Ответ

0 голосов
/ 10 октября 2019

вы можете сохранить данные в классе со статическими переменными:

class Data {    
    static let oneName = "someText"
}

и затем установить oneName в вашем первом контроллере представления:

Data.oneName = weaponOneNameTextField.text 

и в вашем втором контроллере представления:

let oneName = Data.oneName

или вы можете использовать подготовку к переходу в первом контроллере представления:

override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
    if let destinationViewController = segue.destination as? WeaponsPopUpViewController {
        destinationViewController.oneName = weaponOneNameTextField.text 

    }

}

и во втором контроллере представления определили:

var oneName = ""
...