Изменение фонового изображения для Mainview - PullRequest
1 голос
/ 08 ноября 2011

Я довольно новичок в Objective-C, но пока не смог найти ответ, который ищу.

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

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

1 Ответ

0 голосов
/ 08 ноября 2011

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

Вот такой вопрос, который охватывает его:

Что именно делает делегат в проекте xcode ios?

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

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

Предоставление уведомления другому классу с помощью NSNotificationCenter

Как поделиться объектом со всем проектом?

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

NSNotificationCenter против делегирования (с использованием протоколов)?

...