У меня есть контроллер представления перед загрузкой, который получает разные видео из моей базы данных и получает их URL-адрес для загрузки, затем я передаю каждый URL-адрес следующему viewcontroller в его собственной строке, используя prepare(segue:...)
, в этом классе у меня программно сделал прокрутку с моими пользовательскими данными, однако я получаю ошибку Cannot use instance member 'itemOne' within property initializer; property initializers run before 'self' is available
. Я понимаю, что означает эта ошибка, и я пробовал ленивые переменные, но я не думаю, что это сработает, учитывая, что предыдущему контроллеру представления нужна эта переменная для отправки данных url, если это имеет смысл. Итак, как бы вы go сообщили об этом, когда вам нужно отправить данные в эту переменную, вот мой код:
class HomeViewController: UIViewController {
// Variables use with the previous view controller to send data between them
var itemOne: String?
var itemTwo: String?
var itemThree: String?
var itemFour: String?
override func viewDidLoad() {
super.viewDidLoad()
view.addSubview(collectionView)
collectionView.backgroundColor = .white
collectionView.topAnchor.constraint(equalTo: view.topAnchor, constant: 150).isActive = true
collectionView.leadingAnchor.constraint(equalTo: view.leadingAnchor, constant: 16).isActive = true
collectionView.trailingAnchor.constraint(equalTo: view.trailingAnchor, constant: -16).isActive = true
collectionView.heightAnchor.constraint(equalTo: collectionView.widthAnchor, multiplier: 0.5).isActive = true
collectionView.delegate = self
collectionView.dataSource = self
}
fileprivate let data = [
CustomData(title: "Test", image: #imageLiteral(resourceName: "ss-1"), url: itemOne!), // ERROR
CustomData(title: "Test2", image: #imageLiteral(resourceName: "done-button"), url: itemTwo!), // ERROR
CustomData(title: "Test2", image: #imageLiteral(resourceName: "notificationIcon"), url: itemThree!) // ERROR
]
/....