Swift - неожиданно найденный nil при развертывании необязательного значения - вызывающая переменная из делегата
Я пытаюсь создать свое первое приложение для iOS
Я получил эту ошибку "неожиданно обнаружил ноль при развертывании необязательного значения", когда я пытаюсь получить доступ к переменной из моего контроллера представления делегата
Я пытаюсь получить значение нажатой ячейки, чтобы установить в качестве текста метки на моем целевом контроллере
Это первый контроллер
class SearchStationViewController: UITableViewController, writeValueBackDelegate {
var selectedStation: String!
var fromStationValue: String! = "None"
override func viewDidLoad() {
super.viewDidLoad()
}
override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
selectedStation = stations[indexPath.row].StationName
fromStationValue = selectedStation
let vc = SelectedStationViewController()
vc.fromStationValue = self.fromStationValue
vc.delegate = self
self.dismissViewControllerAnimated(true, completion: nil)
}
}
И целевой контроллер, который я хотел бы изменить, это label.text
protocol writeValueBackDelegate {
var fromStationValue: String! {get set}
}
class SelectedStationViewController: UITableViewController {
@IBOutlet weak var stationFrom: UILabel!
var delegate: writeValueBackDelegate! = nil
var fromStationValue: String! = "None"
override func viewDidLoad() {
super.viewDidLoad()
stationFrom.text = fromStationValue
}
}
1 ответ
Поэтому я просто сослаться на ответ, который я дал ранее в этот день: Ошибка кодирования Flappy Bird в Swift
Вы должны будете инициализировать свой контроллер с соответствующей раскадровкой xib oder. Пример:
let storyboard = UIStoryboard(name: "myStoryboardName", bundle: nil);
let vc = storyboard.instantiateViewControllerWithIdentifier("myVCID") as UIViewController;
(из создания и представления viewController в Swift)
В противном случае ваш контроллер представления не будет знать никаких выходов, и они будут нулевыми.