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


Как из одной розетки сделать две: варианты устройства проводки

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

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

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

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

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

Проводить или нет розетку от розетки?

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

При самостоятельном монтаже дополнительной розетки предстоит решить, какой она будет:

  • новая точка, удаленная от существующей на пару метров;
  • сдвоенная модель вместо одинарной;
  • целый блок из 3-6 точек.

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

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

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

Когда в комнате переставили диван и поменяли место дислокации телевизора или повзрослевшим детям купили ПК – здесь двойной розеткой не обойдешься. Понадобится поставить дополнительно одну-две новые.

А если потребности в электропотреблении выше, но и толщина сечения провода позволяет – лучше всего поставить блок на 4-6 гнезд. Такое решение сможет гармонично вписаться в интерьер, не нагромождая стены лишними деталями.

Правила проведения розетки от розетки

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

Правило #1 — правильно прячем провод

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

Хорошо, когда вопрос с еще одной розеткой решается на этапе черновых ремонтных работ. В это время проще всего спрятать провод в штробу

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

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

Как вариант, расположить розетку в 15-30 см от пола и спрятать провода в специальный широкий плинтус, который легко поставить своими руками.

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

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

Прятать ничего не нужно, а если понадобиться заменить участок – доступ ничем не затруднен.

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

Фото из

Монтаж проводки открытым способом

Медные трубы поверх деревянной отделки

Провода спрятать внутри подрозетника

Провода утоплены в стену

Правило #2 — тонкости установки двойной модели

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

Она отличается от одиночной 2 посадочными местами, которые способны выдержать суммарный ток до 16 А.

Устанавливается такая модель в один подрозетник. От одиночной ее рабочий механизм отличается наличием 2-х клеммников, разведенных в разные стороны.

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

Для установки потребуется:

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

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

Правило #3 — нюансы монтажа новой розетки рядом

Вариант с установкой новой электроточки на определенном расстоянии от существующей потребует больше времени и усилий. Здесь, как и в предыдущем варианте, предстоит обесточить дом/квартиру и только потом приступать к работам.

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

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

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

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

Одно ответвление вставится в механизм старой розетки, а второе – новой. Питающая жила из 3-х проводов наращивается до нужной длины.

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

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

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

Правило #4  — особенности подключения блока

Когда толщина магистральной жилы достаточная, а потенциальные приборы, которые будут питаться от будущих розеток, обладают умеренной мощностью, можно вместо одной старой розетки соорудить блок розеток в модульной рамке. Это может быть 2 подряд, 3, 4, 5 или 6 штук.

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

Для подключения этого варианта розеток предстоит сначала обесточить помещение. А лучше и всю квартиру/дом.

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

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

Его точные параметры зависят от размера самого стакана и ширины декоративной крышки-накладки.

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

После установки важно проверить работоспособность новой розетки – лампочка должна зажечься

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

Ошибки при проведении розетки

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

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

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

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

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

Фото из

Клеммник винтовой конструкции

Клеммник ВАГО пружинного типа

Колпачок СИЗ для крепления скрутки

Зажим-разветвитель ВАГО

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

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

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

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

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

Можно подобрать наиболее удобный вариант скрепления проводов между собой – покупать нужно оригинальные клеммники или другие изделия, опасаясь подделок

Пятая ошибка – когда провод пустили по диагонали. Это недопустимо, да и стандартами проведения электропроводки такое запрещено – провод следует прокладывать вертикально. Хотя домашние умельцы способны еще и не на такое.

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

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

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

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

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

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

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

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

В видео ролике кратко изложены основные принципы последовательного подключения розеток:

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

Видео обзор популярных соединителей, используемых для соединения проводов между собой:

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

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

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

ios - подключить две метки к одной розетке

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

swift - Как получить доступ к ссылающейся розетке с другого контроллера представления?

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  3. Если вам нужно больше места для работы, сверните навигатор проекта и область служебных программ, щелкнув кнопки Navigator и Utilities на панели инструментов 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 .

    Вы могли заметить, что значение поля Type по умолчанию - 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.

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

.

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