Views should know how to paint themselves and layout their sub views, depending on their properties, and that's it.
You definitely should let a controller class be the delegate instead of the view itself.
The delegate controller doesn't have to be the view controller that displays the view, though. It could easily be a completely separate controller class that only knows how to handle what the view requires.
Thanks for your answer. I'd thought about that. So you're saying I should create a new class FamilyMembersTableViewController (that is not a viewController subclass) and instantiate that each time I need to display a new tableView? And this would act as a go-between for the Family model and FamilyView? This would keep MVC clean, but seems a little unnecessary, as the FamilyViews are awfully specialized anyway, and would be tightly coupled with their tableControllers.
I think a separate controller is the best solution. In ver. 2.0 of your app, you'll be implementing all this amazingly cool stuff, that would only make sense in a controller, and then you'll have to refactor. If you follow the MVC way of doing it now, you'll thank yourself later. :)
The more I think about this, the clearer it becomes that this is the way to go. I've implemented this, and it has no ill side effects. Thank you for helping me see the solution that should have been obvious :) (Though now I face an even harder problem: What should I name this class? To stay in the example, FamilyMemberTableViewController seems both obvious and confusing, since it is neither a UIViewController nor UITableViewController subclass, but it is a controller for a UITableView.)
Yeah, that'll probably be the final name. Purely out of interest, though, is it the controller for the table, or is it the controller for a UITableView? Where does one start and the other end? Does UIKit even make the distinction?