Доступ к IBOutlet из другого класса

Я ViewController функцию класса из моего класса ViewController следующим образом:

 Buttons.set_cornerRadius(10) 

У меня есть другой файл .swift где у меня есть объявленная функция:

 class Buttons { class func set_cornerRadius(radius: CGFloat) { ViewController().someButton.layer.cornerRadius = radius } } 

Когда я пытаюсь запустить это, он выдает ошибку: "Unexpectedly found nil while unwrapping an optional Value" .

Я уже проверил соединения Storyboard-IBOutlet . Все подключено правильно.
Если я вызову метод в том же классе, как это, все будет работать:

 class ViewController: UIViewController { @IBOutlet weak var someButton: UIButton! override func viewDidLoad() { super.viewDidLoad() set_cornerRadius(10) } func set_cornerRadius(radius: CGFloat) { someButton.layer.cornerRadius = radius } } 

Как я могу это исправить? Что я делаю неправильно / не понимаю?

Заранее спасибо.

Вы ViewController к универсальному ViewController , но вам нужно использовать существующий UIView . Сделайте что-то вроде этого:

 class Test: UIViewController { class func set_cornerRadius(yourView: UIView, radius: CGFloat) { yourView.layer.cornerRadius = radius } } 

Таким образом, вы передаете UIView который хотите установить радиус угла.

Вы расширяете свой класс ViewController следующим образом:

 extension ViewController { func set_cornerRadius(radius: CGFloat) { someButton.layer.cornerRadius = radius } } 

Теперь вы можете вызвать этот метод в исходном файле ViewController используя: set_cornerRadius(someValue) в вашем viewDidLoad или где хотите. Вы можете поместить это расширение в другой файл.

  • Контроллеры просмотров с подтверждением входа в Facebook
  • Ios Swift делает шрифт переключателем полужирным, курсивом, boldItalic, нормальный без изменений другие атрибуты
  • Как показать один из двух ViewControllers, нажав кнопку «Отмена»?
  • Когда вызывать родительские функции?
  • Как сохранить GMSCameraPosition?
  • Не соответствует протоколу UIPickerViewDataSource
  • Регулярное расстояние с помощью AutoLayout
  • Сохранить структуру в UserDefaults
  • Как я могу исправить сбой при нажатии, чтобы выбрать строку после прокрутки таблицы?
  • Как установить значение по умолчанию для UIPickerView
  • Программно изменить элемент tabBar?
  • Interesting Posts

    Есть ли способ увидеть, какие UDID включены в сборку?

    iOS7-стиль push segue, слева направо

    Получить текущий кадр из Youtube YTPlayerView

    Что делать, если проверка IAP завершилась неудачей?

    Измените идентификатор пакета в Xcode при отправке моего первого приложения в IOS

    Ошибка анализа Apple Mach O-Linker?

    UIAlertController автоматически исчезает

    Помогите определить, почему XCode «Не удалось загрузить MyApp.app» на мой iPad

    z-index обрабатывается по-разному на iOS при настройке -webkit-overflow-scrolling: touch

    Рекурсивное обращение к вызову с обратным вызовом после некоторых ошибок итераций сторожевого таймера iOS

    Реализация делегата, который запускается для каждого кадра в локально сохраненном видео

    iOS Swift: имя приложения вытягивается из настроек проекта, а не из Info.plist

    «Тестирование эквивалентности классов» в Objective-c

    Как найти аппаратный тип интерфейса на iOS и Mac OS X?

    Почему объект не отменяется при использовании ARC + NSZombieEnabled

    Давайте будем гением компьютера.