No problem at all, UITableViewController
is a subclass of UIViewController
. And it so happens that in iPhone OS 3.0 any UIViewController
(and subclasses) can work in conjunction with a UINavigationController
to provide a context aware toolbar.
In order for this to work you must:
- Make sure that you use a
UINavigationController
to contain all your view controllers that needs a toolbar.
- Set the
toolbarsItems
property of the view controller that wants a toolbar.
This is almost as easy as as setting the view controller's title, and should be done the same way. Most probably by overriding the initWithNibName:bundle:
initializer. As an example:
-(id)initWithNibName:(NSString*)name bundle:(NSBundle*)bundle;
{
self = [super initWithNibName:name bundle:bundle];
if (self) {
self.title = @"My Title";
NSArray* toolbarItems = [NSArray arrayWithObjects:
[[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAdd
target:self
action:@selector(addStuff:)],
[[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemSearch
target:self
action:@selector(searchStuff:)],
nil];
[toolbarItems makeObjectsPerformSelector:@selector(release)];
self.toolbarItems = toolbarItems;
self.navigationController.toolbarHidden = NO;
}
return self;
}
You can also use setToolbarItems:animated:
instead of assigning to the toolbarItems
property, to add and remove toolbar items in an animated fashion on the fly.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…