Как подключить группу розеток


Последовательное и параллельное подключение розеток

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

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

Для этого нужно всего лишь выяснить, как производится параллельное и последовательное подключение розеток для домашней техники, в каких случаях применяются схемы «шлейфом» и «звездой». С этой весьма полезной информацией ознакомит предложенная нами статья.

Содержание статьи:

Способы подключения розеток

Сегодня подключение розеток осуществляют двумя способами: в первом обустраивается для каждой точки отдельная линия электропроводки, во втором – к одной ветке подключается сразу несколько точек.

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

Преобладающее большинство технических устройств, нуждающихся в подключении к электроснабжению, расположено или приурочено к кухне и ванной комнате:

Галерея изображений

Фото из

Кухня - помещение, в котором используются электроприборы, подключаемые как к отдельным, так и к общим силовым линиям

Электрооборудованием, различающимся по мощности, оснащаются ванные комнаты и совмещенные санузлы

Если в последовательно подключенную цепь розеток подключить мощный прибор совместно с другими, электропроводка и розетка перегорит

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

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

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

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

Электрические чайники, тостеры, миксеры, кофемолки, хлебопечки работают от розеток, подключенных последовательно - шлейфом

Кухня - место установки мощных потребителей

Электрооборудование в ванных и санузлах

Перегорание розетки от превышения нагрузки

Подключение розеток шлейфом

Фен как прибор для питания от шлейфовой розетки

Отдельная силовая линия для стиральной машины

Шлейфовая схема установки розеток на кухне

Маломощные кухонные потребители шлейфовых линий

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

При необходимости подключения каждого такого потребителя запитываемая точка должна выдерживать номинальный ток в 16 – 32А. На ток с таким же показателем рассчитан и стоящий на входе .

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

Розетки с отдельными линиями – единственно верный вариант для обслуживания мощных бытовых приборов типа стиральной машинки или электроплиты

Способ предполагает соединение всех элементов к общей питающей линии электропроводки.

Чтобы свести на «нет» риск выведения из строя сразу нескольких точек, мастера рекомендуют в одну систему включать не более двух-трех розеток. Этот момент четко прописан в СП 31-110-2003: подключать шлейфом допускается до трех дополнительных электроприемников.

Существенным «минусом» такой схемы является то, что при случайном повреждении одной из жил в месте контакта перестают работать все следующие за ней элементы

Единственное условие – чтобы суммарная нагрузка по току не превышала в два раза значение рабочего номинального тока первого (головного) электроприемника.

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

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

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

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

Независимо от типа выбранного способа электропроводку можно выполнять в одном из двух вариантов:

  • открытый – предполагает прокладку проводов на поверхности стены;
  • закрытый – предполагает выдалбливание каналов для прокладки силовых линий в бетонных и кирпичных стенках, выборку канала в древесине для прокладки кабеля, затянутого в гофротрубу.

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

При открытом способе монтажа для защиты РЕ проводника от механических повреждений и придания ему большей презентабельности используют кабель-каналы, либо же плинтусы из пластика

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

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

Чтобы минимизировать необходимость «раскурочивания» стен для создания штроб, закрытую проводку выполняют на этапе строительных или ремонтных работ до момента выполнения отделки

Но «невидимость» закрытой проводки способна сыграть и злую шутку при попытке «забить гвоздь». Поэтому существует негласное правило: провода прокладывать относительно розеток строго вертикально или горизонтально.

Особенности монтажа шлейфового подключения

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

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

К примеру, мы знаем, что номинальный ток на одну розетку не должен превышать 16А. Если к одной точке подключить такую нагрузку, то ничего страшного не случится. Но при включении такой нагрузки хотя бы на 2-3 розетки одной линии ее суммарные показания возрастут, как следствие – питающий кабель может не выдержать.

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

Согласно ПУЭ при шлейфовом соединении не допускается разрывать РЕ проводник защитного заземляющего провода. Его контур в любом случае должен оставаться неразрывным.

Снизить материальные затраты при подведении РЕ проводника к розеткам помогает применение одного из технических решений:

Монтаж с использованием соединителей

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

При шлейфовом подключении магистральный провод, подведенный от силового щитка, поступает к посадочному месту многоместного подрозетника. От него он запитывает первую розетку, от которой через собственные контакты питание идет ко второй розетке, от второй – к третьей.

Все жилы проводника: синяя для нулевого «нулевого», красно-коричневая для «фазного» и желто-зеленая для «заземления» – подключаются параллельно

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

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

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

Для достижения желаемого эффекта клеммам придают формы, которые позволяют увеличить площадь самих контактов, а также силу их сжатия. Сегодня для монтажа защитного нуля часто используют соединители типа «Scotchlok». Клипсовый соединитель этого типа оснащен врезными контактами.

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

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

Через контакт первой розетки подводят фазный провод питающего кабеля и РЕ проводник шлейфа, поступающего дальше на вторую розетку. На втором контакте – нулевые провода питающего кабеля и шлейф ко второй розетке. По такому же принципу выполняют подключение к третьей и последующей розетке, если ее наличие предусматривала схема силовой разводки.

Согласно ПУЭ п.1.7.144 для подключения открытой проводящей части устройства к нулевому или заземляющему проводнику, необходимо производить ответвление в полости предназначенных для этой цели корпусов электроустановочных изделий. К числу таковых относятся и розетки.

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

Чтобы выполнить опрессовку очищенные концы проводов заводят в полость специальной металлической гильзы и обжимают с помощью ручных пресс-клещей

Способ предполагает помимо применения обычной скрутки проводов дополнительное изолирование и опрессовывание их концов с помощью гильзы. Это обеспечивает бесперебойный контакт элементов цепи и ее высокую механическую прочность.

Установка дополнительной распределительной коробки

Этот способ предполагает установку рядом со шлейфом розеток скоммутированной со щитком ответвительной коробки либо же соединительной колодки. При этом кабель разветвляется в распределительной коробке на участке до подведения к подрозетнику.

Применение дополнительной ответвительной коробки для РЕ-проводников также позволяет провести подключение заземляющий контактов параллельно при разводке розеток шлейфом

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

Планируя в дальнейшем от распределительной коробки делать новые подключения, на этапе монтажа стоит оставить запас кабеля длиной в 15-20 см

В обоих случаях при подведении к розеткам проводов фазы и ноль образуется шлейф, а от РЕ проводника – ответвление. Поэтому при шлейфовании розеток важно соблюдать полярность контактов: от клеммы с нулем проводником отводить нулевой. Аналогично поступают и с фазным проводом.

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

Конструкция розеточного блока, включающая до четырех отдельных элементов, подключается по такому же принципу, как и единичная розетка.

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

При подключении блоков жилы проводников соединяют любым из описанных способов. Оголенные участки изолируют термоусаживаемой трубкой или обматывают изоляционной лентой.

Специфика параллельного подключения

Особенность параллельной схемы подключения розеток, иначе называемой “звездой”, заключается в отдельном подсоединении к щитку каждой розетки.

Третье вполне обоснованное название “бескоробочная”, т.к. предполагает возможность отказа от распаечной коробки. Способ активно практикуется в странах Европы, а у нас применяется для обеспечения отдельной линией мощных потребителей чаще всего в комплексе с шлейфовой технологией.

Один из вариантов параллельной схемы демонстрирует подборка фото:

Галерея изображений

Фото из

Шаг 1: Скрытая прокладка кабеля по параллельной схеме

Шаг 2: Подготовка спаренного подрозетника к установке

Шаг 3: Крепление подрозетников в подготовленной стене

Шаг 4: Выравнивание стены вокруг установленных подрозетников

Шаг 5: Удаление общей изоляции кабеля

Шаг 6: Удаление изоляции с ноля, фазы и земли

Шаг 7: Параллельная установка розеток

Шаг 8: Установка и фиксация общей лицевой панели

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

Параллельную схему также используют для подключения силовых трехфазных розеток, которые будут запитывать мощные электроприборы. При этом сечение жил, питающих такие потребители, должно быть как минимум 2,5 кв. мм.

Для большей надежности они должны располагать небольшим запасом по току. Это позволит компенсировать фактическое отклонение от указанного производителем диаметра от их номинального значения, чем часто «грешат» представленные на современном рынке изделия. К тому же такое решение обеспечит возможность работы оборудования в режиме перегрузки.

Такой способ установки выгоден тем, что работоспособность каждой отдельной точки не оказывает влияние на функционирование остальных участников цепи. Для бытовой техники такая схема считается наиболее стабильной и безопасной.

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

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

Предназначение провода проще всего определить по цвету изоляции:

  • «фаза» – провода с белым оттенком;
  • «нуль» – изоляция окрашена в синий цвет;
  • «заземление» – оплетка желто-зеленого цвета.

Заземление – по сути, защитный ноль. Чтобы он оставался таковым, необходимо обеспечить его надежное и постоянное соединение на протяжении всей линии.

Для соединения проводов и подключения к розетке первым делом укорачивают их концы. Применение бокорезов позволит максимально аккуратно выполнить работу. Конец каждого провода на 15-20 мм зачищают от внешней изоляции с помощью острого ножа.

Соединение проводов выполняют в такой последовательности:

  1. С розетки снимают пластиковую защитную крышку.
  2. Зажимные винты откручивают на 5-6 мм. Те же манипуляции проделывают с винтом и на клемме заземления.
  3. Зачищенные концы проводов поочередно заводят в коробку с учетом положения вводных клемм и укладывают в соответствующие гнезда.
  4. Гнезда с уложенными проводами плотно затягивают винтами.
  5. Подрозетник с подключенными проводами вставляют в стеновую нишу и фиксируют боковыми зажимами.

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

Схему применяют не только для запитки отдельно расположенных розеток, но и для подключения блоков, включающих две и более точки

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

При все преимущества схемы сохраняются. Единственное – процесс подключения отнимает чуть больше времени и сил.

Увеличенные затраты – не аргумент для тех, для кого в приоритете безопасность. Если смотреть на ситуацию более глобально, то иногда лучше сразу вложить больше средств и усилий, обустроив автономную силовую линию для розетки. Тогда не придется каждый раз задумываться над тем, можно ли задействовать точку для подключения того или иного электроприбора.

Выводы и полезное видео по теме

Видео #1. Руководство по применению шлейфового способа:

Видео #2. Подробное ознакомление с одним из безопасных вариантов подключения розеток:

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

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

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

точек

Выход - это свойство объекта, которое ссылается на другой объект. Ссылка заархивирована через Interface Builder. Соединения между содержащим объектом и его выходами восстанавливаются каждый раз, когда содержащий объект разархивируется из своего файла пера. Содержащий объект содержит выход, объявленный как свойство с квалификатором типа IBOutlet и параметром weak . Например:

 @interface AppController: NSObject 
 {
} 
 @property (weak) IBOutlet NSArray * ключевые слова; 

Поскольку это свойство, выход становится частью инкапсулированных данных объекта и поддерживается переменной экземпляра.Но розетка - это больше, чем простое свойство. Связь между объектом и его выходами архивируется в файле пера; когда загружается файл пера, каждое соединение разархивируется и восстанавливается, и поэтому всегда доступно, когда возникает необходимость отправить сообщения другому объекту. Квалификатор типа IBOutlet - это тег, применяемый к объявлению свойства, чтобы приложение Interface Builder могло распознать свойство как выход и синхронизировать его отображение и соединение с Xcode.

Выход объявлен как слабый эталон ( weak ) для предотвращения циклов сильного эталона.

Вы создаете и подключаете розетку в функции Interface Builder Xcode. Объявление свойства для розетки должно быть помечено квалификатором IBOutlet .

Приложение обычно устанавливает выходные соединения между своими настраиваемыми объектами контроллера и объектами в пользовательском интерфейсе, но они могут быть установлены между любыми объектами, которые могут быть представлены как экземпляры в Interface Builder, даже между двумя настраиваемыми объектами.Как и в случае с любым другим элементом состояния объекта, вы должны иметь возможность обосновать его включение в класс; чем больше выходов у объекта, тем больше памяти он занимает. Если есть другие способы получить ссылку на объект, например, найти его по позиции индекса в матрице, или путем включения в качестве параметра функции, или с помощью тега (присвоенного числового идентификатора), вам следует сделать это вместо этого.

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


.

, цель c - Как подключить выход dataSource контроллера просмотра страницы с помощью раскадровки в Interface Builder

Переполнение стека
  1. Около
  2. Продукты
  3. Для команд
  1. Переполнение стека Общественные вопросы и ответы
  2. Переполнение стека для команд Где разработчики и технологи делятся частными знаниями с коллегами
  3. Вакансии Программирование и связанные с ним технические возможности карьерного роста
  4. Талант
.

Подключить пользовательский интерфейс к коду

В этом уроке вы подключите основной пользовательский интерфейс (UI) приложения FoodTracker к коду и определите некоторые действия, которые пользователь может выполнять в этом пользовательском интерфейсе.

Цели обучения

По окончании урока вы сможете:

  • Объясните взаимосвязь между сценой в раскадровке и базовым контроллером представления.

  • Создание связей между выходами и действиями между элементами пользовательского интерфейса в раскадровке и исходном коде

  • Обработка пользовательского ввода из текстового поля и отображение результата в пользовательском интерфейсе

  • Сделать класс соответствующим протоколу

  • Понять схему делегирования

  • Следуйте шаблону целевого действия при разработке архитектуры приложения

Подключение пользовательского интерфейса к исходному коду

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

В раскадровке сцена представляет один экран содержимого и обычно один контроллер представления. Контроллеры представления реализуют поведение вашего приложения. Контроллер представления управляет одним представлением содержимого с его иерархией подпредставлений. Контроллеры представлений координируют поток информации между моделью данных приложения, которая инкапсулирует данные приложения, и представлениями, которые отображают эти данные, управляют жизненным циклом своих представлений содержимого, обрабатывают изменения ориентации при повороте устройства, определяют навигацию внутри вашего app и реализовать поведение для ответа на ввод пользователя.Все объекты контроллера представления в iOS имеют тип UIViewController или один из его подклассов.

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

Xcode уже создал один такой класс, на который вы смотрели ранее, ViewController.swift и подключил его к сцене, над которой вы сейчас работаете в раскадровке. В будущем, когда вы добавите новые сцены, вы сами установите это соединение в Инспекторе идентичности. Инспектор идентичности позволяет редактировать свойства объекта в раскадровке, связанные с идентичностью этого объекта, например, к какому классу принадлежит объект.

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

Хотя сцена подключена к ViewController.swift , это не единственное подключение, которое необходимо установить. Чтобы определить взаимодействие в вашем приложении, исходный код вашего контроллера представления должен иметь возможность взаимодействовать с представлениями в вашей раскадровке. Это делается путем определения дополнительных соединений, называемых выходами и действиями, между представлениями в раскадровке и файлами исходного кода контроллера представления.

Создание выходов для элементов пользовательского интерфейса

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

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

Для подключения текстового поля к ViewController.swift с кодом

  1. Откройте свою раскадровку Main.раскадровка .

  2. Нажмите кнопку «Ассистент» на панели инструментов Xcode в правом верхнем углу Xcode, чтобы открыть редактор помощника.

  3. Если вам нужно больше места для работы, сверните навигатор проекта и область служебных программ, нажав кнопки «Навигатор» и «Служебные программы» на панели инструментов Xcode.

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

  4. На панели выбора редактора, которая появляется в верхней части помощника редактора, измените помощник редактора с предварительного просмотра на автоматический> ViewController.Свифт .

    ViewController.swift отображается в редакторе справа.

  5. В ViewController.swift найдите строку class , которая должна выглядеть так:

    1. класс ViewController: UIViewController {
  6. Под строкой class добавьте следующее:

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

    Комментарий, который начинается с символов // MARK: - это особый тип комментария, который используется для организации вашего кода и помогает вам (и всем, кто читает ваш код) перемещаться по нему. Позже вы увидите это в действии. В частности, добавленный вами комментарий указывает на то, что это раздел вашего кода, в котором перечислены свойства.

  7. В раскадровке выберите текстовое поле.

  8. Удерживая нажатой клавишу Control, перетащите из текстового поля на холсте к отображению кода в редакторе справа, остановив перетаскивание в строке под комментарием, который вы только что добавили в ViewController.swift .

  9. В появившемся диалоговом окне в поле «Имя» введите nameTextField . Остальные параметры оставьте как есть.

  10. Щелкните Подключиться.

    Xcode добавляет необходимый код в ViewController.swift для хранения ссылки на текстовое поле и настраивает раскадровку для установки этого соединения.

    1. @IBOutlet weak var nameTextField: UITextField!

Найдите минутку, чтобы понять, что происходит в этой строке кода.

Атрибут IBOutlet сообщает Xcode, что вы можете подключиться к свойству nameTextField из Interface Builder (вот почему атрибут имеет префикс IB ).Ключевое слово weak указывает, что ссылка не мешает системе освободить указанный объект. Слабые ссылки помогают предотвратить циклы ссылок; однако, чтобы объект оставался живым и находился в памяти, вам нужно убедиться, что какая-то другая часть вашего приложения имеет сильную ссылку на объект. В данном случае это супервизор текстового поля. Суперпредставление поддерживает сильную ссылку на все свои подвиды. Пока супервизор остается живым и находится в памяти, все субпредставления также остаются живыми.Точно так же контроллер представления имеет сильную ссылку на свое представление содержимого, поддерживая всю иерархию представлений в памяти.

Остальная часть объявления определяет неявно развернутую необязательную переменную типа UITextField с именем nameTextField . Обратите особое внимание на восклицательный знак в конце объявления типа. Этот восклицательный знак указывает на то, что тип является неявно развернутым необязательным типом, который является необязательным типом, который всегда будет иметь значение после его первой установки.Когда вы обращаетесь к неявно развернутому необязательному параметру, система предполагает, что он имеет допустимое значение, и автоматически развертывает его для вас. Обратите внимание, что это приводит к завершению работы приложения, если значение переменной еще не было установлено.

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

Теперь подключите метку к вашему коду так же, как вы подключили текстовое поле.

Для подключения метки к ViewController.swift код

  1. В раскадровке выберите метку.

  2. Удерживая нажатой клавишу «Control», перетащите от метки на холсте к отображению кода в редакторе справа, остановив перетаскивание в строке сразу под свойством nameTextField в ViewController.swift .

  3. В открывшемся диалоговом окне в поле «Имя» введите foodNameLabel .Остальные параметры оставьте как есть.

  4. Щелкните Подключиться.

Опять же, Xcode добавляет необходимый код в ViewController.swift для хранения ссылки на метку и настраивает раскадровку для установки этого соединения. Этот выход похож на текстовое поле, за исключением своего имени и типа (это UILabel , чтобы соответствовать типу объекта в раскадровке).

  1. @IBOutlet weak var foodNameLabel: UILabel!

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

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

Определите действие, которое необходимо выполнить

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

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

Вы создаете действие так же, как создаете выход: удерживая нажатой клавишу Control, перетащите из определенного объекта в раскадровке в файл контроллера представления.Эта операция создает метод в вашем файле контроллера представления, который запускается, когда пользователь взаимодействует с объектом, к которому прикреплен метод действия.

Начните с создания простого действия, которое устанавливает для метки значение Default Text всякий раз, когда пользователь нажимает кнопку Set Default Text. (Код для установки метки для текста в текстовом поле немного сложнее, поэтому вы напишите его в разделе «Обработка пользовательского ввода».)

Чтобы создать действие setDefaultLabelText в ViewController.быстрый код

  1. В ViewController.swift , чуть выше последней фигурной скобки (} ), добавьте следующее:

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

  2. В раскадровке нажмите кнопку «Установить текст метки по умолчанию».

  3. Удерживая нажатой клавишу «Control», перетащите кнопку «Установить текст метки по умолчанию» на холсте к отображению кода в редакторе справа, остановив перетаскивание в строке под комментарием, который вы только что добавили в ViewController.Свифт .

  4. В появившемся диалоговом окне для Connection выберите Action.

  5. В поле Имя введите setDefaultLabelText .

  6. В поле Тип выберите UIButton .

    Вы могли заметить, что значение поля Тип по умолчанию - AnyObject . В Swift AnyObject - это тип, используемый для описания объекта, который может принадлежать любому классу. Определение типа этого метода действия как UIButton означает, что только объекты кнопки могут подключаться к этому действию.Хотя это несущественно для действия, которое вы создаете прямо сейчас, о нем важно помнить на потом.

    Остальные параметры оставьте как есть.

  7. Щелкните Подключиться.

Xcode добавляет необходимый код в ViewController.swift для настройки метода действия.

  1. @IBAction func setDefaultLabelText (_ отправитель: UIButton) {
  2. }

Параметр отправителя относится к объекту, который был ответственен за запуск действия - в данном случае к кнопке.Атрибут IBAction указывает, что метод является действием, к которому можно подключиться из раскадровки в Интерфейсном Разработчике. Остальная часть объявления объявляет метод с именем setDefaultLabelText (_ :) .

Сейчас объявление метода пусто. Код для сброса значения метки довольно прост.

Для реализации действия сброса метки в коде ViewController

  1. В ViewController.swift найдите метод действия setDefaultLabelText , который вы только что добавили.

  2. В реализации метода между фигурными скобками ( {} ) добавьте эту строку кода:

    1. foodNameLabel.text = "Текст по умолчанию"

    Как вы могли догадаться, этот код устанавливает для свойства текст метки значение Текст по умолчанию.

    Обратите внимание, что вам не нужно указывать тип текста по умолчанию, потому что вывод типа Swift может видеть, что вы назначаете что-то типа String , и может правильно вывести тип.

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

  1. @IBAction func setDefaultLabelText (_ отправитель: UIButton) {
  2. foodNameLabel.text = "Текст по умолчанию"
  3. }

Контрольная точка: Проверьте свои изменения, запустив симулятор.Когда вы нажимаете кнопку «Установить текст метки по умолчанию», вызывается ваш метод setDefaultLabelText (_ :) , и значение текста объекта foodNameLabel изменяется с Meal Name (значение, установленное в раскадровке) на текст по умолчанию (значение, заданное действием). Вы должны увидеть изменения в своем пользовательском интерфейсе.

Хотя изменение названия блюда на «Текст по умолчанию» не особо полезно, оно иллюстрирует важный момент. Только что реализованное поведение является примером шаблона целевого действия в дизайне приложения для iOS.Целевое действие - это шаблон проектирования, при котором один объект отправляет сообщение другому объекту при наступлении определенного события.

В этом случае:

  • Событие - это нажатие пользователем кнопки «Установить текст по умолчанию».

  • Действие - setDefaultLabelText (_) .

  • Целевой объект - ViewController (где определен метод действия).

  • Отправителем является кнопка «Установить текст метки по умолчанию».

Система отправляет сообщение, вызывая метод действия для цели и передавая объект отправителя. Отправителем обычно является элемент управления, например кнопка, ползунок или переключатель, который может запускать событие в ответ на взаимодействие с пользователем, такое как касание, перетаскивание или изменение значения. Этот паттерн очень распространен в программировании приложений для iOS, и на уроках вы встретите его гораздо чаще.

Процесс пользовательского ввода

На этом этапе пользователи могут сбросить метку названия еды до значения по умолчанию, но вы действительно хотите, чтобы пользователи вводили свои собственные названия еды, используя текстовое поле.Для простоты вы обновите значение text объекта foodNameLabel всякий раз, когда пользователь вводит текст в текстовое поле и нажимает Return.

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

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

Любой объект может выступать в качестве делегата для другого объекта, если он соответствует соответствующему протоколу. Протокол, определяющий делегата текстового поля, называется UITextFieldDelegate . Очень часто контроллер представления становится делегатом для объектов, которыми он управляет. В этом случае вы сделаете свой экземпляр ViewController делегатом текстового поля.

Во-первых, ViewController должен принять протокол UITextFieldDelegate .Вы принимаете протокол, перечисляя его как часть строки объявления класса.

Принять протокол UITextFieldDelegate

  1. Если помощник редактора открыт, вернитесь в стандартный редактор, нажав кнопку Стандартный.

  2. Разверните навигатор проекта и область служебных программ, щелкнув кнопки Navigator и Utilities на панели инструментов Xcode.

  3. В навигаторе проекта выберите ViewController.Свифт .

  4. В ViewController.swift найдите строку class , которая должна выглядеть так:

    1. класс ViewController: UIViewController {
  5. После UIViewController добавьте запятую (, ) и UITextFieldDelegate , чтобы принять протокол.

    1. класс ViewController: UIViewController, UITextFieldDelegate {

Приняв протокол UITextFieldDelegate , вы сообщаете компилятору, что класс ViewController может действовать как действительный делегат текстового поля.Это означает, что вы можете реализовать методы протокола для обработки ввода текста и назначить экземпляры класса ViewController в качестве делегата текстового поля.

Чтобы установить объект ViewController в качестве делегата его свойства nameTextField

  1. В ViewController.swift найдите метод viewDidLoad () , который должен выглядеть так:

    1. функция отмены viewDidLoad () {
    2. супер.viewDidLoad ()
    3. // Выполните какие-либо дополнительные настройки после загрузки представления, обычно из пера.
    4. }

    Реализация этого метода в шаблоне включает комментарий. Вам не нужен этот комментарий в реализации вашего метода, поэтому удалите его.

  2. Под строкой super.viewDidLoad () добавьте пустую строку и следующее:

    1. // Обработка пользовательского ввода текстового поля через обратные вызовы делегатов.
    2. nameTextField.delegate = self

    self относится к классу ViewController , потому что ссылка на него находится внутри области определения класса ViewController .

    Вы можете добавлять свои собственные комментарии, чтобы понять, что происходит в вашем коде.

Ваш метод viewDidLoad () должен выглядеть так:

  1. функция отмены viewDidLoad () {
  2. супер.viewDidLoad ()
  3. // Обработка пользовательского ввода текстового поля через обратные вызовы делегатов.
  4. nameTextField.delegate = self
  5. }

Когда экземпляр ViewController загружается, он устанавливает себя как делегат своего свойства nameTextField .

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

  1. func textFieldShouldReturn (_ textField: UITextField) -> Bool
  2. func textFieldDidEndEditing (_ textField: UITextField)

Чтобы понять, когда вызываются эти методы и что они должны делать, важно знать, как текстовые поля реагируют на пользовательские события. Когда пользователь касается текстового поля, он автоматически становится первым респондентом.В приложении первый респондент - это объект, который первым на линии принимает многие виды событий приложения, включая ключевые события, события движения и сообщения действий, среди прочего. Другими словами, многие события, генерируемые пользователем, первоначально направляются первому респонденту.

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

Когда пользователь хочет завершить редактирование текстового поля, текстовое поле должно отказаться от своего статуса первого респондента. Поскольку текстовое поле больше не будет активным объектом в приложении, события необходимо перенаправлять на более подходящий объект.

Здесь вступает в силу ваша реализация методов UITextFieldDelegate . Вам необходимо указать, что текстовое поле должно отказаться от своего статуса первого респондента, когда пользователь нажимает кнопку для завершения редактирования в текстовом поле.Вы делаете это в методе textFieldShouldReturn (_ :) , который вызывается, когда пользователь нажимает Return (или в данном случае Done) на клавиатуре.

Для реализации метода протокола UITextFieldDelegate textFieldShouldReturn (_ :)

  1. В ViewController.swift , прямо над разделом // MARK: Actions , добавьте следующее:

    1. // МАРКА: UITextFieldDelegate

    Этот комментарий используется для организации вашего кода и помощи вам (и всем, кто читает ваш код) в навигации по нему.

    Вы уже добавили несколько таких комментариев. Xcode перечисляет каждый из этих комментариев как заголовок раздела в меню функций файла исходного кода, которое появляется, если вы щелкаете имя файла в верхней части области редактора. Меню функций позволяет быстро перейти к разделу кода. Вы увидите разделы, обозначенные вами как // MARK: , перечисленные здесь. Вы можете нажать на один из заголовков раздела, чтобы перейти к этому разделу в файле.

  2. Под комментарием добавьте следующий метод:

    1. func textFieldShouldReturn (_ textField: UITextField) -> Bool {
    2. }
  3. В этом методе добавьте следующий код, чтобы отказаться от статуса первого респондента текстового поля, и комментарий, чтобы описать, что делает код:

    1. // Скрыть клавиатуру.
    2. textField.resignFirstResponder ()

    Попробуйте ввести вторую строку вместо простого копирования и вставки. Вы обнаружите, что автозавершение кода - одна из замечательных функций Xcode, экономящих время. Когда Xcode отобразит список возможных завершений, прокрутите список, пока не найдете тот, который вам нужен, а затем нажмите Return. Xcode вставляет за вас всю строку.

  4. В этом методе добавьте следующую строку кода:

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

Ваш метод textFieldShouldReturn (_ :) должен выглядеть так:

  1. func textFieldShouldReturn (_ textField: UITextField) -> Bool {
  2. // Скрыть клавиатуру.
  3. textField.resignFirstResponder ()
  4. возврат верно
  5. }

Второй метод, который вам необходимо реализовать, textFieldDidEndEditing (_ :) , вызывается после того, как текстовое поле отказывается от своего статуса первого респондента.Поскольку вы отказываетесь от статуса первого респондента в textFieldShouldReturn , система вызывает этот метод сразу после вызова textFieldShouldReturn .

Метод textFieldDidEndEditing (_ :) дает вам возможность прочитать информацию, введенную в текстовое поле, и что-то с ней сделать. В вашем случае вы возьмете текст, который находится в текстовом поле, и воспользуетесь им для изменения значения вашего ярлыка.

Для реализации метода протокола UITextFieldDelegate textFieldDidEndEditing (_ :)

  1. В ViewController.swift , после метода textFieldShouldReturn (_ :) добавьте следующий метод:

    1. func textFieldDidEndEditing (_ textField: UITextField) {
    2. }
  2. В этом методе добавьте следующую строку кода:

    1. foodNameLabel.text = textField.text

Это все, что вам нужно сделать, чтобы увидеть результат.Ваш метод textFieldDidEndEditing (_ :) должен выглядеть так:

  1. func textFieldDidEndEditing (_ textField: UITextField) {
  2. foodNameLabel.text = textField.text
  3. }

Контрольная точка: Проверьте свои изменения, запустив симулятор. Вы можете выбрать текстовое поле и ввести в него текст. Когда вы нажимаете кнопку «Готово» на клавиатуре, клавиатура закрывается, и текст метки изменяется, отображая текст в текстовом поле.Когда вы нажимаете кнопку «Установить текст метки по умолчанию», метка меняется с того, что в настоящее время отображается в метке, на Текст по умолчанию (значение, установленное действием, которое вы определили ранее).

Заключение

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

Примечание

Чтобы увидеть завершенный пример проекта для этого урока, загрузите файл и просмотрите его в Xcode.

Загрузка файла

.

Смотрите также