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)

В противном случае ваш контроллер представления не будет знать никаких выходов, и они будут нулевыми.

Другие вопросы по тегам