О, боже ... это не так просто. Но я попробую.
- Приложение запускается из main ().
- Делегат приложения получает обратные вызовы от приложения во время выполнения цикла. Например, когда приложение закончило запуск или что-то еще.
- Обычно приложение содержит один экземпляр UIWindow, который является корнем всей иерархии представления.
- UIWindow может иметь UIViews, они могут иметь UIViews самостоятельно. Итак, есть иерархия UIViews (дерево)
- В каждом представлении есть контроллер, который получает пользовательский ввод и другие события и управляет UIView (например, говорит ему перерисовать себя из-за касания пользователя). Контроллер может быть стандартным или нестандартным, написанным разработчиком.
- Просмотр содержимого - это обычный просмотр. Обычно в ячейке таблицы. Экземпляр UITableViewCell имеет свойство, которое называется contentView. Это обычный вид, и это может быть любой подкласс UIView.
NIB - это другая история. Вы можете создать целую иерархию представления самостоятельно. Но есть альтернативный способ: использовать Interface Builder. После создания представлений / подпредставлений в конструкторе интерфейса вы можете сохранить эту иерархию со всеми ее свойствами в виде одного (сериализованного) файла. И загрузить его сразу во время запуска приложения.
У СИБ есть три основных объекта. Владелец файла - это объект, который вы получите, отправив сообщение типа
+ (BOOL)loadNibNamed:(NSString *)aNibName owner:(id)owner
Здесь владелец будет заполнен всеми свойствами владельца файла из NIB.
Первый респондент - первый получает вход. Вы можете просто забыть об этом сейчас.
Вид - это основной вид. Обычно он связан со свойством view владельца файла.
Это очень краткий обзор всех этих вещей. Вам действительно нужно прочитать документацию, чтобы лучше понять ее.