Базовое сегментированное управление не работает

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

//
//  AboutViewController.swift
//  Yiives
//
//  Created by Patrick van der Nat on 7/22/17.
//  Copyright © 2017 Origen. All rights reserved.
//

import UIKit

class AboutViewController: UIViewController {
    @IBOutlet weak var segmentedControl: UISegmentedControl!
    @IBOutlet weak var textLabel: UILabel!

    @IBAction func indexChanged(_ sender: Any) {
        switch segmentedControl.selectedSegmentIndex
        {
        case 0:
            textLabel.text = "First Segment Selected";
        case 1:
            textLabel.text = "Second Segment Selected";
        case 2:
            textLabel.text = "Third Segment Selected";
        case 3:
            textLabel.text = "Fourth Segment Selected";
        default:
            break
        }
    }
}

И вот выдается ошибка:

2017-07-22 20:02:31.059244+0200 Yiives[369:50130] -[Yiives.AboutViewController segmentControl:]: unrecognized selector sent to instance 0x100b37b40
2017-07-22 20:02:31.060083+0200 Yiives[369:50130] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[Yiives.AboutViewController segmentControl:]: unrecognized selector sent to instance 0x100b37b40'
*** First throw call stack:
(0x183a1afe0 0x18247c538 0x183a21ef4 0x183a1ef54 0x18391ad4c 0x189b81010 0x189b80f90 0x189b6b504 0x189c9a764 0x189d522e0 0x189b80390 0x189b7b728 0x189b4c33c 0x18a346014 0x18a340770 0x18a340b9c 0x1839c942c 0x1839c8d9c 0x1839c69a8 0x1838f6da4 0x185360074 0x189bb1058 0x1000a8544 0x18290559c)
libc++abi.dylib: terminating with uncaught exception of type NSException
(lldb) 

person vandernat.p    schedule 22.07.2017    source источник
comment
Если приложение вылетает, должна быть ошибка, было бы полезно знать, что это такое, не так ли?   -  person l'L'l    schedule 22.07.2017
comment
Конечно, вот оно: 017-07-22 20:02:31.059244+0200 Yiives[369:50130] -[Yiives.AboutViewController segmentControl:]: неопознанный селектор отправлен экземпляру 0x100b37b40 2017-07-22 20:02:31.060083+0200 Yiives[369:50130] *** Завершение приложения из-за необработанного исключения «NSInvalidArgumentException», причина: «-[Yiives.AboutViewController segmentControl:]: нераспознанный селектор отправлен экземпляру 0x100b37b40»   -  person vandernat.p    schedule 22.07.2017
comment
Убедитесь, что метод IBAction правильно подключен к сегментированному элементу управления xib/раскадровки.   -  person firstinq    schedule 22.07.2017
comment
@vandernat.p Пожалуйста, отредактируйте свой вопрос, указав соответствующие детали, вместо того, чтобы публиковать их в комментариях.   -  person rmaddy    schedule 22.07.2017


Ответы (1)


Вы подключили метод действия с именем segmentControl:, но в вашем коде метод действия называется indexChanged.

Обновите соединение с сегментированного выхода управления на метод действия.

person rmaddy    schedule 22.07.2017
comment
Спасибо, это работает! Иногда я чувствую себя нубом :D - person vandernat.p; 22.07.2017