UISegmentedControl отменить выбор (не выделять ни один из сегментов) - PullRequest
42 голосов
/ 05 февраля 2010

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

[menu setSelectedSegmentIndex:-1];

menu - UBOutlet для uisegmentedcontrol, но это дает мне исключениеУ кого-нибудь есть идеи?спасибо Питер

Ответы [ 7 ]

229 голосов
/ 06 февраля 2012

Правильный способ сделать это:

[menu setSelectedSegmentIndex:UISegmentedControlNoSegment];
31 голосов
/ 19 мая 2011

Полагаю, вы пытаетесь создать мгновенный выбор в сегментированном элементе управления. В конструкторе интерфейса установите segmentedcontrol на мгновенное значение. Или в коде вы можете сделать:

menu.momentary = YES;
26 голосов
/ 15 марта 2016

Установка segmentedControl на .momentary = YES меняет способ взаимодействия пользователя с segmentedControl. Если вы хотите, чтобы изначально ничего не выбиралось при загрузке страницы, но segmentedControl ведет себя одинаково после того, как выбор сделан пользователем, тогда вам нужно что-то более похожее на это:

Решение Swift 4 :

 @IBOutlet weak var segmentedControl: UISegmentedControl!

 self.segmentedControl.selectedSegmentIndex = UISegmentedControlNoSegment
3 голосов
/ 11 октября 2014

Теперь вы можете сделать это в xcode 6 в конструкторе интерфейсов:

Deselect the 'Selected' option under segmented control behaviour in attributes inspector.

2 голосов
/ 20 декабря 2018

Свифт 4

@IBOutlet weak var segmentControl: UISegmentedControl! {
    didSet {
        segmentControl.selectedSegmentIndex = UISegmentedControl.noSegment
    }
}
2 голосов
/ 20 ноября 2015

Решение Swift: @IBOutlet weak var mySegmentedControl: UISegmentedControl! и mySegmentedControl.selectedSegmentIndex = -1.

0 голосов
/ 05 февраля 2010

Я предполагаю, что вы назвали [myArray length] вместо правильного [myArray count] где-то в вашем коде. NSArray использует метод count, а не length для количества элементов, которые он содержит.

...