Скажем, у меня есть приложение с фиксированным расположением: одна кнопка и несколько ярлыков. Имеет смысл не использовать несколько контроллеров просмотра во всем приложении, так как у меня есть одна и та же кнопка и метки. Я не хочу копировать и вставлять их, потому что их внешний вид и стиль никогда не будут меняться. Если позже я решит изменить их внешний вид, мне придется пройти через каждый контроллер вида, и это плохая практика (как и при копировании и вставке кода).Структура приложения iOS
Хотя, я хочу, чтобы иметь возможность позволить пользователю вернуться назад и вперед «макеты» приложение, но этот код не позволяет мне сделать это:
class MyViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
enterFirstLayout()
}
func enterFirstLayout() {
// do things such as change labels' text property
exitFirstLayout()
}
func exitFirstLayout() {
// do things
enterSecondLayout()
}
func enterSecondLayout() {
// ...
}
}
Что я могу сделать, чтобы избежать создания несколько контроллеров просмотра и предоставление пользователю возможности пропустить и вернуться к определенному макету приложения?
Вы должны отделить фиксированный * макет * (презентация) вашего приложения от * контента *, который будет представлен. Вы можете сохранить только один класс контроллера, но сделать несколько экземпляров этого класса, представляющих разные данные. – jtbandes
Это очень интересно, спасибо @jtbandes. Что делать, если один макет немного отличается от других? Скажем, мне нужно вызвать функцию только в одном макете, а не в других. – Cesare
Вопросы, которые вы задаете, слишком расплывчаты для хороших ответов. Это может быть не 100% актуально для вашей проблемы, но я бы рекомендовал изучить дизайн [ResearchKit] (http://researchkit.org/docs/index.html), который имеет концепцию «шагов» и «задач», которые может иметь некоторое сходство с тем, что вы делаете. – jtbandes