UiSegmentedControler更改视图

时间:2015-10-11 23:51:15

标签: ios objective-c

我想使用这个分段控件来显示一些信息,但我发现很难这样做。这是我的代码:

@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做一些事情。我该如何做到这一点,它会按照我想要的方式工作?

1 个答案:

答案 0 :(得分:0)

单击任何细分时,系统会调用您的方法-(void) segmentAction。因此,您需要在firstViewController中为viewDidLoad设置颜色。然后,您将能够更改分段点击的视图颜色。