Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Using a UISegmentedControl in the footer of UIPopoverController

In my iPad app Viewfinder (iTunes Link), I'm trying to recreate the look of a UISegmentedControl as seen in the footer of Keynote's Build In popover:

Keynote

The iPad HIG suggests using a bottom-aligned UIToolbar, but the appearance is incorrect. This screenshot shows Black Opaque, but none of the standard styles match Keynote.

Viewfinder

Any advice on recreating the Keynote look would be appreciated. If you don't have Keynote on the iPad, you can see the same technique in the footer of the Bookmarks popover in Maps.

like image 226
Fraser Speirs Avatar asked Jul 19 '10 19:07

Fraser Speirs


1 Answers

What you need is to set the toolbarItems of your top UIViewController in your UIPopover and configure it properly. Consider something like this:

        NSArray *segmentedItems = [NSArray arrayWithObjects:@"Bookmarks", @"Recents", @"Contacts", nil];
        UISegmentedControl *ctrl = [[UISegmentedControl alloc] initWithItems:segmentedItems];
        ctrl.segmentedControlStyle = UISegmentedControlStyleBar;
        ctrl.selectedSegmentIndex = 0;

        UIBarButtonItem *item = [[UIBarButtonItem alloc] initWithCustomView:ctrl];
        ctrl.frame = CGRectMake(0.0f, 5.0f, 320.0f, 30.0f);

        NSArray *theToolbarItems = [NSArray arrayWithObjects:item, nil];
        [self setToolbarItems:theToolbarItems];
        [ctrl release]; 
        [item release];

EDIT: Now i got it, just do not set the tintColor, it will inherit the correct color (whatever it is). The screenshot below now looks exactly like the one in the Google Maps App:

alt text http://www.memorylifter.com/services/dev/linklist/SCREENSHOT_TABBAT.png

like image 109
hermos Avatar answered Oct 05 '22 18:10

hermos