Где разместить функцию, которая передавала данные между контроллерами представления - PullRequest
0 голосов
/ 05 сентября 2018

Я не знаю, как сделать заголовок конкретным, я объясню, что мне нужно здесь.

Мой вопрос:

Это приложение для погоды, где я позволяю пользователю менять город, для которого он хочет проверить погоду. Проблема в том, что я создал контроллеры вида программно. Значение переопределения функции prepareForSegue не применяется.

Теперь я нашел ответ на вопрос о том, что нужно делать вместо prepareForSegue (ниже приведен код), однако, где я должен вызывать функцию, поскольку она не является переопределением.

Код:

func prepareForSegue() {
     let changeCityVC = ChangeCityViewController()
     changeCityVC.delegate = self
     present(changeCityVC, animated: true, completion: nil)
}

Спасибо

Ответы [ 2 ]

0 голосов
/ 05 сентября 2018

Ваш prepareForSegue метод фактически не готовится к переходу. Он просто создает ВК и представляет его. Так что это действительно должно называться presentChangeCityVC или что-то в этом роде.

Что касается того, где вызывать метод, просто вызывайте его всякий раз, когда вы хотите представить свой ВК! Предположим, у вас есть кнопка с надписью «Сменить город». Вы можете вызвать метод в целевой кнопке:

 func changeCityButtonPressed() {
    presentChangeCityVC()
}
0 голосов
/ 05 сентября 2018

Два варианта прыгают в мою голову:

  1. Добавьте свойство к контроллеру представления, которое будет представлено, что-то вроде "titleText". Затем, когда вы создаете этот контроллер представления, установите значение для этого свойства и используйте viewDidLoad, чтобы назначить titleText заголовку контроллера представления, который вы также перемещаете.

  2. Создайте протокол и добавьте свойство делегата на новый контроллер представления этого типа. В первом контроллере представления назначьте создателя в качестве делегата. Затем в viewDidLoad (или где бы то ни было) новый контроллер представления может запросить у делегата (докладчика по делу) любую необходимую ему информацию (например, заголовок).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...