Что такое Storyboard? Чем отличается от Xib? Пример

Сториборды позволяют вам существенно уменьшить количество склеивающего их кода, чтобы обеспечить переход от одной страницы к другой. Раньше разработчикам приходилось создавать отдельные файлы (файлы nib или xib) интерфейса для каждого отдельного view controller(страницы). Но теперь приложения используют единственный сториборд, который включает в себя дизайн всех страниц и который определяет взаимодействие между ними. Сториборды имеют ряд достоинств:

• В сториборде очень удобно наблюдать общую картину вашего приложения и взаимосвязи между его страницами. В сториборде можно отслеживать все что угодно, потому что общий дизайн приложения содержится в одном единственном файле, а не распределен между несколькими файлами nib.

• Сториборды могут описывать переходы между различными окнами. Эти переходы называются "segues", которые создаются путем соединения двух страниц прямо в сторибоде. Благодаря этим segues, вы пишите меньше кода для вашего пользовательского интерфейса.

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

• Сториборды упрощают работу при использование автопозиционирования. Автопозиционирование - мощная функция, которая позволяет определять математические взаимоотношения между элементами, которые имеют определенные размеры и позиции, и также упрощает работу по отображению приложения на разных устройствах с разными расширениями экрана.

XIB:

● Один UIView

● Более гибкий, многоразовый, переносной

● может быть вызван и загружен несколькими контроллерами

Storyboard:

● Может иметь несколько контроллеров

● Один контроллер может иметь несколько UIView.

 

Способа обмена информацией в iOS (делегаты, нотификации, блоки).

Делегаты

Основной идеей делегатов является то, что контроллер определяет протокол (набор определений методов), которые описывают то, что объект делегата должен сделать для того, чтобы иметь возможность реагировать на события А контроллера. Протокол представляет собой договор, где доверитель говорит: «Если вы хотите быть моим делегатом, то вы должны реализовать эти методы». Это позволяет контроллеру вызывать методы на его делегат с осознанием того, что делегат будет реагировать на вызовы методов. Делегат может быть любого типа объекта, так что контроллер не связан с конкретным объектом, но он все еще может быть уверен, что делегат будет реагировать, когда он пытается сказать ему что-то

+

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

Время компиляции предупреждений / ошибок, если метод не реализован, как это должно быть делегатом.

Протокол определен в пределах только контроллера.

Очень прослеживается и легко определить поток управления в приложении.

Возможность иметь несколько протоколов определяющих один контроллер, каждый с различными делегатами.

Ни один объект третьей стороны не требуется для поддержания / мониторинга процесса коммуникации.

Возможность получать возвращаемое значение из называемого метода протокола. Это означает, что делегат может помочь предоставить информацию обратно к контроллеру

-

Много строк кода, необходимого для определения: 1. определение протокола, 2. свойство делегата в контроллере, и 3. внедрение определений методов делегата внутри самого делегата


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: