Не удается подключиться к IBOutlet в новом пользовательском классе Xcode 11 - PullRequest
0 голосов
/ 23 января 2020

Я работаю над проектом iOS в Xcode 11, чтобы создать приложение, которое конвертирует Фаренгейт в Цельсий. Я удалил файл ViewController.swift по умолчанию и создал собственный класс с более наглядным именем ConversionViewController.swift. Затем этот файл был сохранен в текущем проекте. Файл содержит следующие строки кода:

class ConversionViewController: UIViewController {

    @IBOutlet var celsiusLabel: UILabel!

    @IBAction func fahrenheitFieldEditingChanged(_ textField: UITextField) {
        celsiusLabel.text = textField.text
    }
}

В Main.storyboard я выбрал View Controller в схеме документа, затем открыл инспектор идентификации. В разделе Custom Class инспектора идентификации я изменил класс на ConversionViewController, а под полем модуля я проверил Inherit module from target. Далее я хочу создать выход для текстовой метки по Цельсию и создать действие для текстового поля, которое будет вызываться при изменении текста. Итак, я открываю Main.storyboard и пытаюсь перетаскивать элемент управления Conversion View Controller в схеме документа на метку Цельсия и подключать его к celsiusLabel в ConversionViewController.swift.

Проблема в том, что Xcode не позволяй мне. Когда я управляю перетаскиванием с Conversion View Controller на метку Цельсия, ничего не происходит. У меня не появляется всплывающее окно, которое дает мне возможность выбрать розетку celsiusLabel.

Я пытался зайти в Product -> Clean Build Folder, но это не решило проблему , Не хватает ли шага? Я использую iOS Programming: Big Nerd Ranch Guide 6-е издание, которое, я знаю, не написано для Xcode 11.

Ответы [ 3 ]

0 голосов
/ 23 января 2020

В вашем StoryBoard выберите ViewController, нажав сверху, где отображается имя, после чего выберите инспектор соединений (последний вариант). Вы увидите свой ярлык Цельсия там под розетками. Перетащите из пустого круга метки туда к метке в представлении ViewController и подключитесь.

0 голосов
/ 23 января 2020

Я столкнулся с той же проблемой: - Она будет решена двумя способами: -

1) После изменения имени файла .swift просто очистите сборку. Если это не позволяет вам создавать розетки, тогда просто выйдите из xcode и запустите его снова, тогда это позволит вам добавить розетку в класс.

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

0 голосов
/ 23 января 2020

Когда я управляю перетаскиванием из контроллера представления конверсии на метку Цельсия, ничего не происходит. У меня нет всплывающего окна, которое дает мне возможность выбрать розетку celsiusLabel.

Да, я часто вижу эту проблему. Обычно я могу решить это, перетаскивая другой путь. Например, выберите метку, переключитесь справа на инспектор подключений и перетащите его из круга рядом с «Новый источник ссылок» на контроллер представления в схеме. Теперь он позволяет установить соединение?

...