Я создаю набор обучающих экранов, чтобы представить мое приложение.
Раньше у меня было три разных контроллера представления, а затем я загружал их в свой UIPageViewController. Однако это неэффективно, поскольку они используют одни и те же цвета и формат.
Этот формат (для справки) находится здесь:
Итак, я хочу создать три экземпляра этого контроллера представления и поместить их в массив для моего UIPageViewController. Я создаю экземпляр с помощью:
UIStoryboard(name : "Main" , bundle : nil).instantiateViewController(withIdentifier: "test")
Итак, ранее я сделал это, а затем создал функцию в контроллере представления, чтобы установить текст
let vc = UIStoryboard(name : "Main" , bundle : nil).instantiateViewController(withIdentifier: "test")
vc.setMainText(text: "label Text")
Я хочу настроить свое представление с помощью раскадровки, поэтому о программной настройке контроллера представления не может быть и речи.
Я думаю, что мне следует использовать инициализатор для представления. Итак, как я могу использовать инициализатор, если я использую instanceViewController:withIdentifier?
So how can I use an initializer if I'm using
instantiateViewController:withIdentifier
Вы не можете. Контроллер представления прибывает уже инициализированным.
У вас может быть три разных экземпляра того же класса контроллера представления в вашей раскадровке, каждый из которых разработан по-своему. Таким образом, каждый идентификатор даст вам экземпляр, уже оформленный по вашему желанию.
В качестве альтернативы вы можете вооружить свой класс контроллера представления свойствами экземпляра, которые вы можете установить, чтобы настроить тему, и установить эти свойства для каждого экземпляра после того, как вы получите его из раскадровки.