У меня есть 4 разных проекта xcode. Я хочу вызвать viewcontroller для другого проекта из одного проекта. Как я могу это сделать?

У меня есть 4 разных проекта XCode для разных модулей в разных ветках git. Я хочу сделать общий проект / приложение, через которое я могу вызвать все 4 модуля. Там модули должны отображаться в виде списка в таблице. Через общий логин будут вызваны все модули. Как я могу это сделать?

что я сделал до сих пор: я взял все модули проверки и добавил их в одном рабочем пространстве. Но, не делая их рамками, я не могу назвать их из общего проекта. Также у меня большие модули и классы фреймворка для доступа нужны публично. Так что нет другого хорошего способа сделать это. Надеюсь, я смогу прояснить мою проблему..

Спасибо

5 ответов

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

Решение состоит в том, чтобы найти другое решение для управления зависимостями для вашего исходного кода.

Следующим наиболее очевидным вариантом является использование подмодулей git, потому что это было явно разработано для модуляции на уровне источника. Если вы используете это в сочетании с решением, предложенным @sjwarner для организации проекта, вы сможете достичь того, что вам нужно.

https://git-scm.com/book/en/v2/Git-Tools-Submodules

"Подмодули позволяют вам хранить Git-репозиторий в качестве подкаталога другого Git-репозитория. Это позволяет вам клонировать другой репозиторий в ваш проект и сохранять ваши коммиты отдельными".

Другими словами, вы можете продолжать поддерживать каждый контроллер представления отдельно, и коммиты могут быть включены в ваш общий проект.

(Обратите внимание, что подмодули не обязательно должны быть отдельными проектами, вы можете сделать отдельные подмодули только для контроллеров представления, но это может быть немного сложнее в настройке и обслуживании)

a) Создайте каждый проект, содержащий контроллер представления, который вы хотите, в git-репозитории, если он еще не создан.

б) создать git-репозиторий для вашего основного проекта (если он еще не создан)

c) добавить каждый проект в виде подмодуля git в основное репозиторий git

d) следовать предложению @sjwarners по организации исходного кода для всего проекта

Вы сказали выше, что

Все проекты являются независимыми проектами.

что говорит о том, что каждый из ваших 4 проектов компилирует свои исходные файлы в приложение.

Похоже, вы создаете свое собственное новое приложение, поэтому вас не волнует, что создает каждый из этих четырех проектов. Вы заботитесь только об исходных файлах.

  • Игнорировать файлы проекта.
  • Найдите .swift файлы, которые содержат интересующие вас объекты.
  • Добавьте их в свой собственный проект.
  • Построить.

Я думаю, что вы хотите сказать, это открыть определенный контроллер View на вашем втором приложении из вашего первого приложения. Вы можете добиться этого с помощью URL-схемы в iOS.

  1. Зайдите в файл info.plst вашего приложения.
  2. Добавьте строку к этому и назовите ее "Типы URL"
  3. Разверните первый элемент в разделе "Типы URL" и добавьте строку с именем "Идентификатор URL", значение этой строки должно быть обратным доменом для вашего приложения, например, "com.yourcompany.myapp".
  4. Снова добавьте строку в первый элемент в "Типы URL" и назовите его "Схемы URL".
  5. Внутри "Схемы URL" вы можете использовать каждый элемент в качестве другого URL, который вы хотите использовать, поэтому, если вы хотите использовать "myapp://", вы создадите элемент под названием "myapp".

ваша структура должна выглядеть примерно так

Проверьте эту ссылку, вы получите лучшее понимание, спасибо. Пользовательская схема URL iOS

Вы можете использовать концепцию схемы множественных URL для достижения этой функции. Так же, как в концепции множественного вкуса Android

Если у вас уже есть все исходные файлы, которые вам нужны в вашей рабочей области в качестве проектов, вам нужно создать новую целевую платформу и добавить необходимый контроллер и его зависимости в платформу. (через первую вкладку на правой боковой панели или непосредственно из настроек сборки). Добавьте этот фреймворк в зависимости вашего приложения и импортируйте его. Будьте осторожны, вы, вероятно, должны сделать хотя бы свой контроллер открытым / открытым (если вам нужно создать подклассы)

Другие вопросы по тегам