Colocar o widget / visualização em um arquivo .xib separado funciona e é apropriado, especialmente se você quiser fazer referência a essa mesma visualização de vários controladores de visualização.
No entanto, às vezes você deseja ver a visualização / widget adicional dentro do mesmo storyboard, e isso é possível. Veja como você faz:
Selecione seu controlador de visualização em IB (clique na barra preta abaixo da visualização) e arraste um UIView da Biblioteca de Objetos para a barra preta:
Quando uma visualização está na barra preta, ela é instanciada como qualquer outra visualização no IB, mas não é adicionada à sua hierarquia de visualização até que você faça isso no código. Altere a classe da visualização para corresponder à sua própria subclasse, se necessário:
Você pode conectá-lo ao seu controlador de visualização como faria com qualquer outra visualização:
A visualização adicionada é exibida no Esboço do documento e você também pode conectar ações e referências:
Agora, o problema que permanece é que você não pode realmente ver a visualização, não importa quantas vezes você tente clicar ou clicar duas vezes, o que anularia todo o propósito de colocá-la no mesmo storyboard. Felizmente, eu conheço duas soluções alternativas.
A primeira solução alternativa é arrastar a visualização da barra preta de volta para a visualização do controlador de visualização, editá-la e arrastá-la de volta para a barra preta quando terminar. Isso é problemático, mas confiável.
A outra solução alternativa é mais complicada, mas eu prefiro porque ela me permite ver todas as minhas visualizações ao mesmo tempo:
Arraste um UITableView da Biblioteca de Objetos para a visualização recém-adicionada.
Em seguida, arraste um UITableViewCell para esse UITableView.
Depois de fazer isso, sua visualização aparece magicamente ao lado, mas você tem um UITableView que não deseja. Você pode redimensionar para 0 x 0 ou pode excluí-lo e seu UIView (geralmente) permanecerá visível.
Ocasionalmente, a visualização secundária ficará oculta novamente no IB. Você pode repetir os passos acima se tiver excluído o UITableView ou se o UITableView ainda estiver na hierarquia, basta clicar em UITableViewCell e a visualização aparecerá novamente.
O segundo método funciona para UIViews, mas não tão bem para UIToolbars e é impossível para UIButtons, então a solução mais limpa que encontrei quando você precisa incluir muitas subvisualizações diferentes é anexar um único UIView secundário ao seu controlador de visualização como um contêiner que nunca é mostrado, coloque todas as suas visualizações secundárias lá e use o truque UITableViewCell para tornar tudo visível. Eu redimensiono meu UITableView fictício para 0x0 para torná-lo invisível. Aqui está uma captura de tela de como tudo fica junto:
xib
s para seus controladores de visualização separadamente e não no storyboard?