Ответ 1
Я бы предположил, что вы вызвали [myArray length]
вместо правильного [myArray count]
где-то в вашем коде. NSArray использует метод count, а не длину для количества содержащихся в нем элементов.
на самом деле название содержит мой вопрос. У меня есть UISegmentedControl, и вам нужно отменить выбор выбранной вкладки. Я пробовал:
[menu setSelectedSegmentIndex:-1];
- это UBOutlet для uisegmentedcontrol, но это дает мне исключение. у кого есть идея? благодаря питер
Я бы предположил, что вы вызвали [myArray length]
вместо правильного [myArray count]
где-то в вашем коде. NSArray использует метод count, а не длину для количества содержащихся в нем элементов.
Правильный способ сделать это:
[menu setSelectedSegmentIndex:UISegmentedControlNoSegment];
Я думаю, вы пытаетесь создать мгновенный выбор в сегментированном управлении. В построителе интерфейса установите segmentedcontrol на мгновение. Или в коде вы можете сделать:
menu.momentary = YES;
Установка для .momentary = YES
изменяет способ взаимодействия пользователя с segmentedControl. Если вы хотите, чтобы изначально ничего не выбиралось при загрузке страницы, но segmentedControl ведет себя одинаково после того, как выбор сделан пользователем, тогда вам нужно что-то более похожее на это:
Решение Swift 4:
@IBOutlet weak var segmentedControl: UISegmentedControl!
self.segmentedControl.selectedSegmentIndex = UISegmentedControlNoSegment
Теперь вы можете сделать это в xcode 6 в построителе интерфейса:
Deselect the 'Selected' option under segmented control behaviour in attributes inspector.
Решение Swift: @IBOutlet weak var mySegmentedControl: UISegmentedControl!
и mySegmentedControl.selectedSegmentIndex = -1
.
Свифт 4
@IBOutlet weak var segmentControl: UISegmentedControl! {
didSet {
segmentControl.selectedSegmentIndex = UISegmentedControl.noSegment
}
}