Reputation: 535
As we all know, table views in Cocoa Touch are one of the niftiest pieces of framework elements that's out there. As a convenience, Apple gave us a nice view controller class to encapsulate the functionality of a table view in a vc, the UITableViewController
.
At the same time, there are times that we want to utilize the functionality of a table view without having it take up the whole screen. However, there seems to be no way to do this by subclassing UITableViewController
. Instead, I had to hookup a table view and manually subscribe to the UITableViewDelegate
and UITableViewDataSource
. If I try to subclass UITableViewController
, my app crashes before it can even put the view on-screen...
My question is, is there something I'm missing? When subclassing UITableViewController
, I hook up my custom table view to the tableView property in UITableViewController
. Is there something else I have to do?
Upvotes: 1
Views: 3619
Reputation: 101
Step 1: Subclass UIViewController
instead of UITableViewController
MyTableViewController : UIViewController <UITableViewDataSource, UITableViewDelegate>
Step 2: Use interface builder to drop a tableView and custom View
Step 3: Declare the tableView property as IBOutlet
in your MyTableViewController
header file and bind it to the tableView in the interface builder
IMHO, This process would give you more flexibility.
Upvotes: 2
Reputation: 126167
UITableViewController
only adds minor conveniences over UIViewController
: it creates and positions the table view, hooks up the delegate & datasource (to itself, generally), passes the view controller editing
property through to the table, and does a couple of useful UI bits when the view appears. (See [the docs][1] for details.)
Just about all of the above are either A) things that you're needing to change in order to have a non-fullscreen table, or B) things that you can do in a line or two each, and which UITableViewController
only does for your convenience. For cases like this, you're better off using your own UIViewController
subclass.
Upvotes: 8