Переключить 2 просмотра с помощью контроллера переключателя - PullRequest
0 голосов
/ 04 октября 2011

Это основной вид, и я хотел бы переключить два отдельных вида;для состояния ВКЛ и для состояния ВЫКЛ.

Как будет выглядеть код?

Toggle views with switch controller

Ответы [ 3 ]

1 голос
/ 04 октября 2011

Выполните следующие действия

  - (void)viewDidLoad //of mainViewController {
        //do viewController1 alloc init     // Gray Color
        [self.view addSubview:viewController1.view];

        //do viewController2 alloc init     //Red Color
        [self.view addSubview:viewController2.view];

        [viewController2.view setHidden:YES];
    }

//assign this method to segmented controls' valueChanged event
    - (IBAction)segmentControlClicked:(id)sender {
        UISegmentedControl *segmentedControl = (UISegmentedControl *)sender; // if segmented control is not declared as an IBOutlet
        if (segmentedControl.selectedSegmentIndex == 0) {
            [viewController1.view setHidden:NO];
            [viewController2.view setHidden:YES];
        }
        else if (segmentedControl.selectedSegmentIndex == 1) {
            [viewController2.view setHidden:NO];
            [viewController1.view setHidden:YES];
        }
    }

Убедитесь, что viewController1 и viewController2 источника y находятся ниже сегментированного элемента управления, чтобы сегментированный элемент управления не был скрыт.

1 голос
/ 04 октября 2011

вы можете взять два представления в xib и добавить оба вида в основной вид при просмотре, который загружен, и установить скрытое свойство для того, которое вы не хотите показывать, а затем установить скрытое свойство TRUE или FALSE для события управления переключением навыкл.

0 голосов
/ 04 октября 2011

Попробуйте следующее

- (IBAction)segmentControlClicked:(id)sender {
    if (!viewController1) {
        //do alloc init
    }
    if (!viewController2) {
        //do alloc init
    }

    UISegmentedControl *segmentedControl = (UISegmentedControl *)sender;
    if (segmentedControl.selectedSegmentIndex == 0) {
        [viewController1.view setHidden:NO];
        [viewController2.view setHidden:YES];
    }
    else if (segmentedControl.selectedSegmentIndex == 1) {
        [viewController2.view setHidden:NO];
        [viewController1.view setHidden:YES];
    }
}
...