Скажем, у меня есть UIView, который я хотел бы повторно использовать в нескольких контроллерах представления, учитывая, что это довольно общий объект UIView с высокой ценностью повторного использования (например, объект UITextField
или UISegmentedControl
). Насколько я понимаю, было бы намного проще повторно использовать этот UIView, если бы я написал UIView в коде, а не создавал XIB с помощью Interface Builder. Я пришел к такому выводу, потому что, если UIView написан в коде, я могу просто инициализировать новый экземпляр этого UIView в любом контроллере представления:
MyGreatReusableView *greatReusableView = [[MyGreatReusableView alloc] initWithFrame:CGRectMake(...)];
... а затем напрямую получить доступ к свойствам и атрибутам этого UIView, как и к стандартным элементам управления UIView, таким как UITextField
, с его свойствами .text
, .textColor
и т. д.
Однако, если я создаю UIView как XIB, он должен быть привязан (либо через владельца файла, либо через IBOutlet объекта View в XIB) к определенному контроллеру представления и, следовательно, может использоваться только в этом контроллере представления. Кроме того, я могу получить доступ к свойствам элементов управления в XIB только с помощью IBOutlets, которые подключены к этому контроллеру представления.
Я думаю, что я совершенно неправильно понял что-то в отношении файлов XIB, так как это кажется довольно большим ограничением! Если бы кто-то мог дать разъяснение о том, возможно ли повторно использовать файлы XIB в нескольких контроллерах представления, и, если да, привести пример решения на основе кода по сравнению с решением на основе XIB, я был бы очень признателен.
Спасибо заранее за любую помощь!