UISegmentedControl, UIToolbar and UINavigationItem

二次信任 提交于 2020-01-12 13:41:46

问题


I've create a UISegmentedControl and successfully attached it to my navigationItem.tableView.

But when I try instead to attach it to a UIToolbar, it blows up.

I'm sure I've seen UISegementedControls on toolbars before - but can't seem to get it working. Thoughts?

// 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
)

回答1:


You need to wrap the segmented control view in a UIBarButtonItem:

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


来源:https://stackoverflow.com/questions/1989483/uisegmentedcontrol-uitoolbar-and-uinavigationitem

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!