Задать вопрос
@alex_643

Как добавить кнопку на определенный view controller через код?

Здравствуйте! Я хочу нажать кнопку на одном VC и добавить элемент на другой через код. Как это можно реализовать?
  • Вопрос задан
  • 162 просмотра
Подписаться 1 Простой 1 комментарий
Решения вопроса 1
Если я все правильно понял, вам нужна передача данных между контроллерами с помощью segue.
Создаем в классе второго контроллера переменную, в которую будет передавать нужное значение.
Далее создаем кнопку на первом контроллере и перетаскиваем сегвей от кнопки до второго контроллера. и указываем его идентификатор.

Ниже код для второго контроллера. Просто Лейбл, и в свойство "text" этого лейбла присваиваем значение переменной "name".
class SecondViewController: UIViewController {

    var name = ""
    
    @IBOutlet var username: UILabel!
    
    override func viewDidLoad() {
        super.viewDidLoad()
        
        username.text = name
    }
}


Вот тут код первого контроллера с помощью метода prepare(for segue: ) мы получаем доступ к тому контроллеру, на который и переходим через этот сегвей. Получить доступ можно через destination. Далее передаем имя в нашу переменную, которую мы создали в классе второго контроллера, например Андрей. И этот метот сработает перед переходом на второй контроллер, и передаст "Вася" в нашу переменную "name", при запуске второго контроллера лейбл возьмет значение из этой переменной и заполнит свое свойство "text"
class FirstViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
    }

    override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
        guard segue.identifier == "YourIdentificator" else { return }
        guard let destination = segue.destination as? SecondViewController else { return }
        destination.name = "Вася"
    }
}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы