UIB-кнопки как сегментированные элементы управления - PullRequest
0 голосов
/ 03 ноября 2011

Имея сегментированный элемент управления с двумя UIButton и установите действие на action:@selector(segmentedControl:) для каждой кнопки.

    - (IBAction)segmentedControl:(id)sender {

        BOOL activateSecond = _firstTab.selected;
        _firstTab.selected = !activateSecond;
        _secondTab.selected = activateSecond;
}

Проблема, которая все еще остается, состоит в том, как решить, если я нажимаю на активную кнопку (теперь активное состояние переходит на другую).

Ответы [ 2 ]

2 голосов
/ 03 ноября 2011

Наверху, я думаю, вы могли бы использовать свойство тега.

Установите тег каждой кнопки на номер.

Затем, когда вы получите send в вашем методе segmentedControl, приведите его к UIButton и проверьте его значение тега.

- (IBAction)segmentedControl:(id)sender {

    int buttonTag = ((UIButton*)sender).tag;

    if(_firstTab.selected && buttonTag != 1){
       _firstTab.selected = NO;
       _secondTab.selected = YES;
    }else if(_secondTab.selected && buttonTag != 2){
       _firstTab.selected = YES;
       _secondTab.selected = NO;
    }
}
2 голосов
/ 03 ноября 2011

Следите за тем, какая кнопка была ранее выбрана, и затем вы можете поймать, когда новая кнопка нажата:

- (IBAction)segmentedControl:(id)sender {
    UISegmentedControl * myControl = (UISegmentedControl *) sender;

    if(myControl.selectedSegmentIndex != previouslySelectedIndex)
    {
        // here the user has selected a new button, which becomes the active one
        previouslySelectedIndex = myControl.selectedSegmentIndex;
    } else {
        // the user tapped on the active, previously selected button
    }
}

Конечно, для начала вам нужно инициализировать ранее выбранный индекс.

Дайте мне знать, поможет ли вам эта идея.

...