Сегмент управления не выделен или выделен - PullRequest
0 голосов
/ 30 января 2012

ViewDidLoad

v1 = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 460)];
v2= [[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 460)];

// затем я добавляю компоненты к обоим этим представлениям.

для v1, я добавляю несколько текстовых файлов и кнопку для v2, я добавляю несколько меток иimage

и в том же методе viewDidLoad я добавляю контроллер сегмента к контроллеру навигации;

segment = [[UISegmentedControl alloc] initWithFrame:CGRectMake(x,y, height,width)];           
segment .segmentedControlStyle = UISegmentedControlStylePlain;
[segment insertSegmentWithTitle:@"first" atIndex:0 animated:NO];
[segment insertSegmentWithTitle:@"second" atIndex:1 animated:NO];
[segment setSelectedSegmentIndex:0];
segment .momentary = YES;
[segment addTarget:self action:@selector(segmentclicked:) forControlEvents:UIControlEventValueChanged];
segmentControllerView = [[UIView alloc] initWithFrame:CGRectMake(0.0, 0.0, 300.0, 50.0)];
segmentControllerView .autoresizingMask = 0;
[segmentControllerView  addSubview:segment ];
self.navigationItem.titleView = segmentControllerView ;

Теперь в;

-(void)segmentclicked:(id)sender {
if ((((UISegmentedControl *)sender).selectedSegmentIndex) == 0 ) {
    [v1 setHidden:YES];
    [v2 setHidden:NO];

    [self.view addSubview:self.v1];
    [loginSignupSegment setSelectedSegmentIndex:0]; <<<<<<<<<
    [segment addSubview:segment];
    self.navigationItem.titleView = segmentControllerView;
} else {
    //toggle the correct view to be visible
    [v2 setHidden:YES];
    [v1 setHidden:NO];     

    [self.view addSubview:self.v2];
    [segment setSelectedSegmentIndex:1]; <<<<<<<<<<<<<<<<
    [segmentControllerView addSubview:segment];
    self.navigationItem.titleView = segmentControllerView;
}}

Что происходит, когда япереключить представления, я не получаю уважение сегмента к выделенному представлению (я сделал это в коде, но оно не показывается) - см. <<<<<<< в коде.

Как я могу решить это

1 Ответ

1 голос
/ 31 января 2012

Я не думаю, что ваш код - лучший способ сделать это.Но я не знаю всего проекта.Для решения проблемы удалите

segment.momentary = YES;

и замените - (void) сегментировано: (id) отправитель:

-(void)segmentclicked:(id)sender {
    if ((((UISegmentedControl *)sender).selectedSegmentIndex) == 0 ) {
        [v1 setHidden:YES];
        [v2 setHidden:NO];

        [self.view addSubview:v1];
        [segment setSelectedSegmentIndex:0];
    } else {
        //toggle the correct view to be visible
        [v2 setHidden:YES];
        [v1 setHidden:NO];     

        [self.view addSubview:v2];
        [segment setSelectedSegmentIndex:1];
}

}

надеюсь, это поможет вам.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...