我想使用这个分段控件来显示一些信息,但我发现很难这样做。这是我的代码:
@synthesize segmentedControl;
- (void)viewDidLoad {
[super viewDidLoad];
NSArray *itemArray = [NSArray arrayWithObjects: @"Player 1", @"Player 2", nil];
segmentedControl = [[UISegmentedControl alloc] initWithItems:itemArray];
segmentedControl.frame = CGRectMake(12, 100, 350, 30);
[segmentedControl addTarget:self action:@selector(segmentAction) forControlEvents: UIControlEventValueChanged];
segmentedControl.selectedSegmentIndex = 0;
[self.view addSubview:segmentedControl];
}
-(void) segmentAction {
if (segmentedControl.selectedSegmentIndex == 0) {
self.view.backgroundColor = [UIColor greenColor];
}
if (segmentedControl.selectedSegmentIndex == 1) {
self.view.backgroundColor = [UIColor blueColor];
}
}
当我运行此代码时,视图仅在我单击第二个段后更改颜色。我希望能够在第一个视图控制器上看到绿色,而无需单击第二个视图控制器。我相信它必须与UIControlEventChanged做一些事情。我该如何做到这一点,它会按照我想要的方式工作?
答案 0 :(得分:0)
单击任何细分时,系统会调用您的方法-(void) segmentAction
。因此,您需要在firstViewController
中为viewDidLoad
设置颜色。然后,您将能够更改分段点击的视图颜色。