У меня UIView определен в
class InteractViewController: UIViewController {
@IBOutlet weak var tipsView: UIView!
var tipslayer: CALayer {
return tipsView.layer
}
}
Существует ряд ограничений, также прикрепленных к классу, а также к меткам, например.
@IBOutlet weak var tips1Top: NSLayoutConstraint!
@IBOutlet weak var tips1Right: NSLayoutConstraint!
@IBOutlet weak var tipsTitle: UILabel!
@IBOutlet weak var tipsDesc: UILabel!
Все подключены нараскадровка на свои правильные выходы.Ссылаясь на них внутри самого InteractViewController, я могу настроить непрозрачность, обновить метки на слое и т. Д.
Тем не менее, они не нужны, если пользователь впервые не использует приложение, поэтому просто, если еще вызовы InteractViewControllerфункция, которая отображает и обновляет их свойства или не отображает их вообще.
Функция, которая управляет и обновляет эти свойства, находится в другом классе (файл Swift в проекте называется.
class TipsViewController: UIViewController {
func tips() {
InteractViewController().tipslayer.transform = CATransform3DMakeScale(0.8, 0.8, 1.0)
}
}
Вызывает сбой приложения при создании
Thread 1: Fatal error: Unexpectedly found nil while unwrapping an Optional value
на
return tipsView.layer (the InteractViewController)
tipsView и tipslayer являются причинами, а не дополнительными и не объявляются как дополнительные.
У меня естьтри вопроса, которые, я надеюсь, я могу получить помощь.
Имеет ли физическая ссылка на выходы в классе ViewController InteractViewController: UIViewController проблема? Если это так, потому что они должны бытьвместо этого программно добавлен класс TipsViewController: UIViewConТроллер (который не имеет физического контроллера визуального представления в XCode)?
Имеет ли физическая ссылка на выходы класса
InteractViewController: UIViewController
создает ненужное использование памяти, если в InteractViewController никогда не вызывается вызов функции во втором ViewContoller TipsViewController.tips (), поэтому, другими словами, ответом на вопрос 1, по сути, являются любые физические выходы, которые должны быть программнодобавлен в Lips TipsViewController: UIViewController?
Если нет проблем с памятью, и зная, что tipsView и возвращаемый слой подсказок не являются дополнительными, почему я просто не могу ссылаться на них из функции tips () в другом классе (TipsViewController: UIViewController)?Я видел несколько сообщений о «передаче данных между контроллерами представления», но я не передаю данные между переменными или массивами.Я хочу / нужно просто обновить строку метки, ограничения (объекты в одном классе контроллера представления из другого класса контроллера представления.
Я знаю, что люди заняты, поэтому просто заранее говорю, что я ценю все отзывы и помощьс проблемой.
Было высказано предположение, что мой вопрос был дубликатом [ Что означает "фатальная ошибка: неожиданно обнаружен ноль при развертывании необязательного значения"?
Но это не мой вопрос. Мой вопрос касается конкретно доступа к Outlet из другого ViewController, который затем генерирует нулевой ответ на Outlet, потому что, как объяснено, InteractViewController, по-видимому, не ссылается на ViewController. Пожалуйста, прочтите объяснения и ответы, предоставленные Робом, который отвечаетэтот конкретный вопрос.