I have common functionality that I need to access from all screens of my app: a right bar button item and associated action.
So as not to repeat the code I would like to set this up in a custom UIViewController and have all my view controllers inherit from it.
- (void)viewDidLoad {
UIBarButtonItem *rightBarButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemPlay target:self action:@selector(lightsCamera)];
self.navigationItem.rightBarButtonItem = rightBarButton;
}
- (void)lightsCamera {
…
}
However, I have a number of UITableViewControllers however and I would like to know if it is possible for them to inherit the functionality too?
It's fairly trivial to recreate you own
UITableViewController
from your customUIViewController
subclass.The controller must have a
UITableView
property, which is also set to itsview
property, set the proper resizing masks, set yourself as the table's delegate and datasource, and remember to flash the scrollbar indicators in-viewDidAppear:
and you've more or less got it.More here.
If you're not adding any new attributes to the view controller, you can implement the two methods in a category on UIViewController and all the subclasses will inherit it by default.