Поміщення віджета / подання в окремий файл .xib працює, і це доцільно, особливо якщо ви можете посилатися на той самий вигляд із декількох контролерів перегляду.
Однак іноді ви хочете побачити додатковий вигляд / віджет у межах однієї дошки, і це можливо. Ось як ви це робите:
Виберіть контролер перегляду в IB (клацніть на чорній смузі під видом), а потім перетягніть UIView з бібліотеки об’єктів на чорну панель:
Коли подання знаходиться на чорній смузі, воно створюється як інший вигляд у IB, але просто не додається до вашої ієрархії подання, поки ви не зробите це в коді. За потреби змініть клас подання, щоб він відповідав вашому власному підкласу:
Ви можете підключити його до свого контролера перегляду, як і будь-який інший вигляд:
Доданий вигляд відображається у Вашому документі, і Ви також можете підключити там дії та посилання:
Тепер проблема, яка залишається, полягає в тому, що ви насправді не можете побачити вигляд, незалежно від того, скільки разів ви намагаєтесь клацнути або двічі клацнути, що перемогло б ціль розміщення його в тій самій розкадровці. На щастя, я знаю два способи вирішення проблем.
Перше обхідне рішення - перетягнути подання з чорної смуги назад у подання контролера перегляду, відредагувати його, а потім перетягнути назад на чорну смужку, як тільки закінчите. Це клопітно, але надійно.
Інший обхідний шлях є більш вигадливим, але я віддаю йому перевагу, оскільки він дозволяє мені одночасно бачити всі свої погляди:
Перетягніть UITableView з бібліотеки об’єктів у ваш нещодавно доданий вигляд.
Потім перетягніть UITableViewCell у цей UITableView.
Як тільки ви це зробите, ваш погляд чарівно вискакує збоку, але у вас є UITableView, який ви не хочете. Ви можете або змінити його розмір до 0x0, або ви можете видалити його, і ваш UIView (як правило) все ще залишатиметься видимим.
Іноді вторинний вигляд знову стає прихованим у IB. Ви можете повторити наведені вище кроки, якщо ви видалили UITableView, або якщо UITableView все ще знаходиться в ієрархії, вам просто потрібно натиснути на UITableViewCell, і подання знову з’явиться.
Другий метод працює для UIViews, але не так добре для панелей UIToolb, і неможливий для UIB-кнопок, тому найчистішим рішенням, яке я знайшов, коли потрібно включити безліч різних підпроектів, є приєднання одного вторинного UIView до вашого контролера перегляду як контейнера, який ніколи не відображається, помістіть туди всі свої вторинні подання та використовуйте трюк UITableViewCell, щоб зробити все видимим. Я зменшую розмір манекена UITableView до 0x0, щоб зробити його невидимим. Ось скріншот, як це все виглядає разом:
xib
s для своїх контролерів перегляду окремо, а не на дошці сюжетів?