В этом приложении пользователь может выполнять действие A или B. При выполнении A зритель видит встроенное представление A; но также во время A зритель может выбрать просмотр встроенного представления B. (То же самое относится и к действию B, только с обратными представлениями.)
Моя установка в IB показана ниже. Не зная лучшего способа, я создал вдвое больше сцен активности, чем мне бы хотелось: для ветки «Делать занятие А» у меня есть две параллельные копии сцены задания А. Первый из них имеет встроенный переход к View A; а во-вторых, переход к встраиванию в View B. (Настройка «B» - это обратное.)
Чтобы избежать большего дублирования, я сделал так, чтобы обе ветви действий совместно использовали Представления A и B. И хотя сцены действий были удвоены, классы, на которые они ссылаются (ActivityAViewController и ActivityBViewController), не были. Я еще не заметил каких-либо осложнений от этого. , , .
В отличие от других обходных путей, которые я видел, я выбрал вышеупомянутый макет «push-pop», потому что виды A и B дороги. Я не хочу отказываться от основного представления только для загрузки дополнительного, и я не хочу загружать оба излишне. Кроме того, я хочу сделать это в IB, потому что настоящее приложение является более сложным, и просмотр всего моего макета помогает мне понять и разработать его. С учетом сказанного, мой подход все еще кажется клутзы.
Мои вопросы
- Есть ли лучший способ настроить это в IB?
- Что происходит с контроллерами общего представления сцен действия? Создается ли отдельный экземпляр класса для каждого или две сцены совместно используют один и тот же экземпляр?
- Аналогично, что происходит с общими представлениями?
Объяснения Apple кажутся достаточно ясными, хотя они предполагают, что у меня больше знаний о Cocoa Touch и связанном с ним жаргоне, чем у меня сейчас. Любые разъяснения и идеи будут оценены.