Должен ли я использовать Segue для навигации по контроллерам?

Многие учебники, книги по iOS для начинающих учат нас использовать Segue. Это хорошее начало. Но хорошо ли это для вас и ваших проектов? По моему опыту, это совсем не хорошо. Вот причины.

Раскадровка работает медленно, особенно вы добавляете много контроллеров в раскадровку, это катастрофа. Я написал кое-что о раскадровке здесь.

Когда у вас 4 или 5 контроллеров, да, не так уж и плохо. Когда у вас есть 10 контроллеров, и на экране А могут отображаться экраны B, C, D, на экране B могут отображаться D и E, на экране E могут отображаться A и C. Это большая головная боль.

Вы должны открывать раскадровки, перетаскивать сегменты много раз. Когда вы настраиваете другие переходы, вы должны установить modalPresentationStyle опять таки.

В противном случае вы можете легко скопировать и вставить код.

let vc = DailyBonusController()
vc.modalPresentationStyle = .fullScreen
present(vc, animated: true)

Простой? Вы можете переключиться на любые контроллеры, которые хотите, вместо перетаскивания на контроллер, который находится на расстоянии 3 или 4 экрана от вашего текущего контроллера.

Идентификатор перехода представляет собой строку, и вы можете легко допустить опечатку. Если ваши экраны имеют много назначений, вам необходимо if … else выбрать назначение для обработки правильного потока.

Заметки:
Если вам нужно использовать Segue, попробуйте назвать идентификатор, например «Show» + your_controller_name. Таким образом, вам больше не нужно запоминать слишком много вещей и предотвращать опечатки.

Когда вы используете Segue, вы отправляете данные на следующий экран в prepareForSegue.
Подумайте, в этом случае у вас есть UITableView или UICollectionView, при выборе строки/элемента отображается подробный экран. Вот как это работает.

использование следует:

  • Сохраните выбранный IndexPath в локальной переменной.
  • Перейти к prepareForSegue и перейдите к исправлению, если так.
  • Развернуть выбранный indexpath.
  • Отправьте данные в пункт назначения.

Не используйте переход
В didSelectRow или где-то, что вы хотите показать.

  • Инициируйте пункт назначения
  • Отправить данные
  • Навигация.

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

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

Наслаждайтесь кодированием.

Похожие записи

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *