【发布时间】:2011-06-15 21:57:42
【问题描述】:
我一直在主要以编程方式创建我的应用程序,并一直在尝试将 UISegmentedControl 添加到 UINavigationControl 工具栏。我创建并显示了视图以及选择 UISegmentedControl 时的操作。问题是,在我调用 selectedSegmentIndex 的任何时候,它都会返回一个空值。任何想法为什么?
NSArray *segmentArray = [[NSArray alloc] initWithObjects:@"Factory Laods", @"User Loads", nil];
UISegmentedControl *segmentedControl = [[UISegmentedControl alloc] initWithItems: segmentArray];
segmentedControl.segmentedControlStyle = UISegmentedControlStyleBar;
[segmentedControl addTarget:self action:@selector(action:) forControlEvents:UIControlEventValueChanged];
UIBarButtonItem *segmentedButton = [[UIBarButtonItem alloc] initWithCustomView:segmentedControl];
UIBarButtonItem *flexibleSpace = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil];
NSArray *array = [[NSArray alloc] initWithObjects:flexibleSpace, segmentedButton, flexibleSpace, nil];
[self setToolbarItems:array];
-------- 动作方法------------
- (void) action:(id)sender {
UISegmentedControl *segment = (UISegmentedControl *) sender;
NSLog(@"Button %@", [segment selectedSegmentIndex]);
}
flexibleSpace 对象是一个 UIBarButtonItem,它被初始化为一个灵活的空间,以使 UISegmentedControl 居中。添加此项目后,我可以添加一个 NSLog 语句并为 selectedSegmentIndex 标识一个空值,并且在触发事件并在操作方法中检查时它也为空。谢谢!
【问题讨论】:
-
你是如何实现action方法的?
标签: iphone ios uisegmentedcontrol