2010-01-01 8 views
15

J'ai créé un UISegmentedControl et l'ai attaché avec succès à mon objet navigationItem.tableView. Mais quand j'essaye à la place de l'attacher à un UIToolbar, ça explose.UISegmentedControl, UIToolbar et UINavigationItem

Je suis sûr que j'ai déjà vu UISegementedControls sur les barres d'outils - mais je n'arrive pas à le faire fonctionner. Pensées?

// works 
NSArray *statusItems = [[NSArray alloc] initWithObjects:@"one", @"two", nil]; 
statusSegments_ = [[UISegmentedControl alloc] initWithItems:statusItems]; 
self.navigationItem.titleView = statusSegments_; 

// doesn't work 
NSArray *statusItems = [[NSArray alloc] initWithObjects:@"one", @"two", nil]; 
statusSegments_ = [[UISegmentedControl alloc] initWithItems:statusItems]; 
NSArray *toolbarItems = [[NSArray alloc] initWithObjects:statusSegments_, nil]; 
self.toolbarItems = toolbarItems; 
[toolbarItems release]; 
[Session started at 2010-01-01 13:40:35 -0600.] 
2010-01-01 13:40:35.182 TimeSheet[15382:20b] *** -[UISegmentedControl view]: unrecognized selector sent to instance 0x3f5c3e0 
2010-01-01 13:40:35.183 TimeSheet[15382:20b] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[UISegmentedControl view]: unrecognized selector sent to instance 0x3f5c3e0' 
2010-01-01 13:40:35.184 TimeSheet[15382:20b] Stack: (
    10847323, 
    2479902267, 
    11229243, 
    10798710, 
    10651330, 
    24428622, 
    24429410, 
    24133352, 
    24133878, 
    11379, 
    24149733, 
    24130330, 
    24151483, 
    24129979, 
    23770, 
    23906970, 
    23890136, 
    2838970, 
    10631872, 
    10628168, 
    960429, 
    960626, 
    23633923 
)

Répondre

34

Vous devez envelopper la vue de commande segmentée dans un UIBarButtonItem:

UIBarButtonItem *item = [[[UIBarButtonItem alloc] initWithCustomView:statusSegments_] autorelease]; 
+0

Merci. Cela a fonctionné - mais avoir du mal à trouver cela documenté? avez vous un lien? –

+0

A juste titre, la documentation 'UIToolbar': http://developer.apple.com/iphone/library/documentation/UIKit/Reference/UIToolbar_Class/Reference/Reference.html#//apple_ref/doc/uid/TP40006927- CH3-SW8 – Joost

+0

Merci, ce lien a conduit à ce que j'aurais dû voir plus tôt: "La classe UIBarButtonItem encapsule les propriétés et les comportements des éléments ajoutés aux objets UIToolbar et UINavigationBar." http://developer.apple.com/iphone/library/documentation/UIKit/Reference/UIBarButtonItem_Class/Reference/Reference.html –