So, I’ve been making iOS apps since the first iPod touch came out, but something has always flabbergasted me; why is the list of new Cocoa Touch classes restricted to subclasses of NSObject, UIView, and UITableView? I routinely make subclasses of UIImageView and UIViewController.
Am I “Doing It Wrong™?” Have I totally misunderstood MVC to the point where I make Controller classes where I shouldn’t? What is the philosophical reasoning for requiring classes to never descend from a basic controller class?
Like @theMikeSwan says, there simply aren’t GUI templates for this when you create a new class in Xcode GUI. But you can always create a new subclass whose parent is initially NSObject. After that, you just go to your code and change the parent class to whatever you like.
So… no, you are not doing it wrong in the sense that you rightly understand that often you want to subclass UIViewController; but yes, you are doing it wrong since you assume you shouldn’t do this only because Xcode GUI does not support it 🙂