Как инициировать отображение одного представления из другого?

#objective-c #uiview

#objective-c #uiview

Вопрос:

Предположим, у вас нет a UIController для выполнения задания. Изнутри UIView .. как бы вы self заменили другим UIView ?

Комментарии:

1. Какой язык / инструментарий вы используете?

2. Извините, objective-C. Я обновлю описание

Ответ №1:

Не очень понятно, что вы пытаетесь сделать из своего вопроса. Например, UIController не является классом.

В идеале ваше приложение должно быть структурировано примерно так:

UIViewController подкласс

  • Управляет набором объектов, которые одновременно отображаются на экране. Например, любое количество UITextFields , UIButtons , UIViews и UILabels .
  • имеет методы (IBActions и другие методы делегирования), которые запускаются при взаимодействии пользователя с элементами управления и входными данными.
  • имеет IBOutlets, которые позволяют ему манипулировать тем, что пользователь видит на экране. Например, IBOutlet, прикрепленный к a UILabel , позволяет изменять текст, когда пользователь нажимает кнопку.

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

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

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

Ответ №2:

Вы можете добавить другое вложенное представление, используя self.addSubview: , возможно, вы также захотите проверить self.bringSubviewToFront:

Для получения дополнительной информации ознакомьтесь с документами: http://developer.apple.com/library/ios/#documentation/uikit/reference/uiview_class/uiview/uiview.html