Tom Brodhurst-Hill
Build an App Like Lego
1 min readMar 9, 2019

--

Nicely presented article.

Since you asked for a better way, to avoid ending up with an instance of your custom class within another instance of itself, here it is:

You can just create your CustomView class, have the master instance of it in a xib with all the subviews and outlets. Then you can apply that class to any instances in your storyboards or other xibs.

No need to fiddle with File’s Owner, or connect outlets to a proxy or modify the xib in a peculiar way, or add an instance of your custom view as a subview of itself.

Just do this:

1. Import BFWControls framework

2. Change your superclass from UIView to NibView (or from UITableViewCell to NibTableViewCell)

That’s it!

It even works with IBDesignable to render your custom view (including the subviews from the xib) at design time in the storyboard.

You can read more about it here:

https://medium.com/build-an-app-like-lego/embed-a-xib-in-a-storyboard-953edf274155

And you can get the open source BFWControls framework here:

https://github.com/BareFeetWare/BFWControls

And here’s a simple extract of the NibReplaceable code that drives it, in case you’re curious:
https://gist.github.com/barefeettom/f48f6569100415e0ef1fd530ca39f5b4

Tom 👣

--

--

Tom Brodhurst-Hill
Build an App Like Lego

iOS developer and architect for BareFeetWare. Builds apps for enterprise and startups. Runs workshops on building apps like Lego.