UISegmentControl переключает представления? - PullRequest
0 голосов
/ 14 февраля 2010

У меня в приложении есть UISegmentControl, и я пытаюсь заставить его переключать представления, как в магазине приложений. Я попробовал этот код без удачи:

- (IBAction)segmentSwitch:(id)sender {
  UISegmentedControl *segmentedControl = (UISegmentedControl *) sender;
  NSInteger selectedSegment = segmentedControl.selectedSegmentIndex;

  if (selectedSegment == 0) {
    //toggle the correct view to be visible
    [firstView setHidden:NO];
    [secondView setHidden:YES];
  }
  else{
    //toggle the correct view to be visible
    [firstView setHidden:YES];
    [secondView setHidden:NO];
  }
}

Кто-нибудь знает, как я мог переключать представления? Любая помощь приветствуется. Спасибо

Ответы [ 2 ]

1 голос
/ 14 февраля 2010

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

Кроме того, вы можете немного упростить IBAction следующим образом:

- (IBAction)segmentSwitch:(UISegmentedControl*)segmentedControl {
    //UISegmentedControl *segmentedControl = (UISegmentedControl *) sender;
    NSInteger selectedSegment = segmentedControl.selectedSegmentIndex;
0 голосов
/ 15 февраля 2010

Было бы полезно узнать, что происходит , когда этот код выполняется, и какова отправная точка - firstView уже виден, и есть ли какой-либо эффект при запуске кода?

Если firstView виден, но код никогда не скрывает его, я подозреваю, что переменная firstView на самом деле не связана с представлением. Вы говорите firstView, чтобы скрыть, поэтому, если представление никогда не прячется, "firstView", вероятно, ноль. Установите точку останова в этом методе и проверьте firstView и secondView, чтобы убедиться, что они имеют ссылки на представления, которыми вы хотите манипулировать.

...