Как повторно использовать один и тот же контроллер представлений в режиме просмотра нескольких контейнеров в swift?

Правильно используйте макрос Jinja2. Это действительно полезная функция. В этом случае у вас нет правильного понимания того, как это работает. Этот пост объяснит это с надеждой. Это макрос для навигационного меню. Не забудьте поставить этот макрос где-то над кодом навигационного меню. В противном случае Jinja не найдет его при необходимости.

{% macro nav_link(endpoint, name) %}
    {% if request.endpoint.endswith(endpoint) %}
        
  • {{name}}
  • {% else %}
  • {{name}}
  • {% endif %} {% endmacro %}

    Вы должны определить этот блок кода отдельно в файле шаблона. Не помещайте его в петлю или в другое место. Когда вы вызываете макрос в любом месте вашего шаблона, этот блок кода будет выполняться и даст вам желаемый результат. Посмотрите, как использовать этот макрос. nav-link() - как регулярная функция. Вызовите его в своем блоке кода навигатора. Помните, что вы должны сначала определить эти маршруты на сервере. Или вы можете добавить эти макросы в отдельные html-файлы (скажем, macros.html) и импортировать в них любой макрос в любом месте.

    
    

    Если вы используете macros.html, как я упоминал выше , вы можете использовать следующий код для импорта своего макроса.

    {% from "macros.html" import nav_link with context %}

    Это хороший учебник для шаблонов jinja2.

    1
    задан Romit Kumar 13 July 2018 в 08:25
    поделиться

    2 ответа

    1) Для контроллера просмотра B добавить идентификатор раскадровки

    2) Добавить представление контейнера внутри контроллера C

    3) Удалить контроллер представления, встроенный в View Controller C

    4) Добавить ссылку «Рассказ раскадровки» рядом с диспетчером C, затем перетащить из представления контейнера внутри просмотрите контроллер C в справочной системе раскадровки и создайте «Embed» segue

    5) Выберите ссылку на раскадровку и установите для параметра «Reference ID» значение просмотреть идентификатор контроллера B. Также убедитесь, что «Storyboard» имеет имя раскадровки, в которой находится контроллер B.

    1
    ответ дан Eman H 17 August 2018 в 13:21
    поделиться
    • 1
      Спасибо за подробный ответ, это сработало! – Romit Kumar 16 July 2018 в 10:23

    Вы можете перетащить Storyboard Reference в это different storyboard и установить для Storyboard и Referenced ID свойства view controller B.

    0
    ответ дан NF Lee 17 August 2018 в 13:21
    поделиться
    Другие вопросы по тегам:

    Похожие вопросы: