Неопознанный селектор отправлен с использованием UISegmentedControl

Я хочу добавить UISegmentedControl к контроллеру представления, и это соответствующий код:

import UIKit

class QuantityNoImageViewController: UIViewController {
    var food: Food!

    @IBOutlet weak var foodName: UILabel!
    @IBOutlet weak var message1: UILabel!
    @IBOutlet weak var message2: UILabel!
    @IBOutlet weak var message3: UILabel!
    @IBOutlet weak var segmentControl: UISegmentedControl!

    @IBAction func segmentControlPressed(_ sender: UISegmentedControl) {
      switch segmentControl.selectedSegmentIndex {
      case 0: print("one");
      case 1: print("two");
      case 2: print("three")
      default: break;
      }
    }

@IBOutlet segmentControl, а также @IBAction segmentControlPressed установлены правильно.

Когда я запускаю приложение, все идет хорошо, пока я не нажимаю сегмент, который производит:

2017-12-15 17:22:11.840952+0100 Healthier[3835:248257] -[Healthier.QuantityNoImageViewController segmentedControl1:]: unrecognized selector sent to instance 0x7fc52e03ae00
2017-12-15 17:22:11.863471+0100 Healthier[3835:248257] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[Healthier.QuantityNoImageViewController segmentedControl1:]: unrecognized selector sent to instance 0x7fc52e03ae00'
*** First throw call stack:

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


person jfboisvieux    schedule 15.12.2017    source источник
comment
Предполагать? Вы ранее заявляли что-то вроде func segmentedControl1:(_ sender: UISegmentedControl), не так ли? Проверьте на раскадровке, какой элемент к нему подключен, и удалите его.   -  person Larme    schedule 15.12.2017
comment
segmentedControl1 - это не то же самое, что segmentControlPressed.   -  person rmaddy    schedule 15.12.2017
comment
как ваш сегментированный элемент управления связан с построителем интерфейса? как связано его действие?   -  person ryancrunchi    schedule 15.12.2017
comment
ТАК, вы поставили точку останова в segmentControlPressed и нажали на нее? Итак, ошибка ссылается на segementedControl1, но вы показали нет кода, для чего это? Когда показали неполный код, помочь очень сложно!   -  person dfd    schedule 15.12.2017


Ответы (1)


Возможно, вы подключили несколько подключений с помощью этого действия (я имею в виду, что вы скопировали этот элемент управления сегментом с другого экрана, и его предыдущее подключение все еще не отключено)

Сбросьте / удалите все соединения IBAction с этим сегментом и повторно подключитесь.

Раскадровка / XIB >> Контроллер представления >> Инспектор подключений >> Сброс всех IBActions для управления сегментами

person Krunal    schedule 15.12.2017
comment
Большое спасибо, у меня нет оправдания, я ценю и надеюсь, что смогу помочь, когда буду набирать опыт! - person jfboisvieux; 15.12.2017