Насколько я знаю, XIB-файлы из IB - это некие архивы, в которых хранятся ваши объекты и их свойства. Когда вы отправляете -initWithNibName
, объекты не архивируются. В общем, вы могли бы - если бы вы знали, как - создавать свои собственные файлы XIB, и они должны работать. Обратите внимание, что при загрузке UIViewController
без указания файла XIB загружается файл XIB с тем же именем, что и у вашего класса. См. Статью Википедии .
К вашему второму вопросу: вы можете создать любой объект, который вы добавите, используя IB программно. Как правило, это UIView
подклассы, которые вы инициализируете с помощью initWithFrame:
. Затем вы устанавливаете нужные вам свойства. Наконец, вы добавляете их в свой вид, используя addSubview
.
IBActions
в основном Пары цели / действия . Например, если вы добавляете UIBarButtonItem
, вы используете initWithBarButtonSystemItem:target:action:
. Установка действия аналогична установке соединения IBAction
в IB.
Вы должны иметь возможность создавать любой пользовательский интерфейс, который вам нужен, программно, однако обычно это требует много работы по сравнению с использованием IB.