Многократный uisegmentedcontrol в 1 представлении, не работающем

У меня есть представление с 2 uisegmentedcontrols, один вдоль основания и один в военно-морском баре. Основание каждый хорошо работает, тот в военно-морском баре, появляется, но не берет событий прикосновения. Кодекс для нижнего сегмента (работа):

    footerSegment = [[UISegmentedControl alloc] initWithItems:[NSArray arrayWithObjects:@"1", @"2", nil]];
[footerSegment setFrame:CGRectMake(5, 6, 310, 30)];
[footerSegment setSegmentedControlStyle:UISegmentedControlStyleBar];
footerSegment.selectedSegmentIndex = 0;
//segmentFiltering.tintColor = [UIColor colorWithWhite:80.0/255.0 alpha:1.0];
[footerSegment addTarget:self action:@selector(segmentAction:) forControlEvents:UIControlEventValueChanged];
[footerSegment setTag:0];
[footerSegment setBackgroundColor:[UIColor clearColor]];
UIImage *segSelected = [[UIImage imageNamed:@"segment_sel.png"] stretchableImageWithLeftCapWidth:5.0 topCapHeight:0];
UIImage* menuRightImage = [[UIImage imageNamed:@"button.png"] stretchableImageWithLeftCapWidth:5.0 topCapHeight:0.0];
[footerSegment setBackgroundImage:menuRightImage forState:UIControlStateNormal barMetrics:UIBarMetricsDefault];
[footerSegment setBackgroundImage:segSelected 
                            forState:UIControlStateSelected barMetrics:UIBarMetricsDefault];

UIImage *segmentDividerImg = [[UIImage imageNamed:@"div.png"] stretchableImageWithLeftCapWidth:0 topCapHeight:0];
// Image between two unselected segments.
[footerSegment setDividerImage:segmentDividerImg forLeftSegmentState:UIControlStateNormal
                rightSegmentState:UIControlStateNormal barMetrics:UIBarMetricsDefault];
// Image between segment selected on the left and unselected on the right.
[footerSegment setDividerImage:segmentDividerImg forLeftSegmentState:UIControlStateSelected
                rightSegmentState:UIControlStateNormal barMetrics:UIBarMetricsDefault];
// Image between segment selected on the right and unselected on the right.
[footerSegment setDividerImage:segmentDividerImg forLeftSegmentState:UIControlStateNormal
                rightSegmentState:UIControlStateSelected barMetrics:UIBarMetricsDefault];

[footerToolBar addSubview:footerSegment];

Кодекс для navbar каждый ниже (видимый, но не работает):

    headSegment = [[UISegmentedControl alloc]
               initWithItems:[NSArray arrayWithObjects:@"A", @"B", nil]];
[headSegment setFrame:CGRectMake(50, 7, 200, 29)];
[headSegment setSegmentedControlStyle:UISegmentedControlStyleBar];
headSegment.selectedSegmentIndex = 0;
[headSegment addTarget:self action:@selector(segmentAction:) forControlEvents:UIControlEventValueChanged];

[headSegment setBackgroundColor:[UIColor clearColor]];
[headSegment setBackgroundImage:menuRightImage forState:UIControlStateNormal barMetrics:UIBarMetricsDefault];
[headSegment setBackgroundImage:segSelected forState:UIControlStateSelected barMetrics:UIBarMetricsDefault];

[headSegment setDividerImage:segmentDividerImg forLeftSegmentState:UIControlStateNormal rightSegmentState:UIControlStateNormal barMetrics:UIBarMetricsDefault];
[headSegment setDividerImage:segmentDividerImg forLeftSegmentState:UIControlStateSelected rightSegmentState:UIControlStateNormal barMetrics:UIBarMetricsDefault];
[headSegment setDividerImage:segmentDividerImg forLeftSegmentState:UIControlStateNormal rightSegmentState:UIControlStateSelected barMetrics:UIBarMetricsDefault];
[headSegment setTag:1];
[self.navigationController.navigationBar addSubview:headSegment];

Кодекс для действия:

    -(void)segmentAction:(UISegmentedControl*)sender
{
    if(sender.tag == 0){
    NSLog(@"Selected index: %d", sender.selectedSegmentIndex);
    }
    else{
        if (sender.selectedSegmentIndex = 1) {
            NSLog(@"Selected HEAD index: %d", sender.selectedSegmentIndex);
        }

}
0
nl ja de

1 ответы

[self.navigationController.navigationBar addSubview:headSegment];

Это не то, как вы добавляете вещи к панели навигации. Необходимо работать посредством навигационного диспетчера navigationItem . Можно сделать сегментированный контроль titleView , или можно обернуть его в барный пункт кнопки и сделать ту из правильных или левых кнопок.

1
добавлено
Откуда вы знаете? Ваше segmentAction внедрение не проверяет на каждую возможность. Исправьте регистрацию в начале без условия.
добавлено автор matt, источник
Я собирался предложить что-то как этот (на самом деле, я собирался предположить, что другой код устанавливал ваш , позволенный к НЕ...) Производят на стороне или не производят на стороне, всегда есть другой код, и это может сделать Странный Материал...:)
добавлено автор matt, источник
измененный на self.navigationController.navigationItem.titleView = возглавляют сегмент;
добавлено автор JeffN, источник
Это все еще показывает, но я все еще не могу выбрать сегмент
добавлено автор JeffN, источник
Тем не менее ничто, основание делилось на сегменты, контроль управляет своей регистрацией, но нажатие на военно-морской бар делилось на сегменты, контроль даже не входит в метод действия
добавлено автор JeffN, источник
Получил его! это - то, что происходит, когда вы производите развитие на стороне: (кто-то переписывал военно-морской бар с ясной кнопкой, которая ничего не сделала, смешного. Спасибо за вашу помощь
добавлено автор JeffN, источник
Конечно, Спасибо!
добавлено автор JeffN, источник
Mobile Dev Jobs — вакансии и аналитика
Mobile Dev Jobs — вакансии и аналитика
6 187 участник(ов)

Публикуем вакансии и запросы на поиск работы по направлению iOS, Android, Xamarin и т.д. ВАЖНО: Правила публикации и правила канала: Ссылка – https://telegra.ph/Pravila-oformleniya-vakansij-i-rezyume-11-09-2

iOS Developers — русскоговорящее сообщество
iOS Developers — русскоговорящее сообщество
2 400 участник(ов)

Общаемся на темы, посвященным iOS-разработке, Swift, Objective-C, SDK, Rx, Cocoa и т.д.