1

我正在尝试创建我的第一个 iOS 应用

当我尝试从委托视图控制器访问变量时,出现此错误“在展开可选值时意外发现 nil”

我正在尝试将按下的单元格值设置为目标控制器上的标签文本

这是第一个控制器

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        
    }
}
4

1 回答 1

3

所以我只会参考我今天早些时候给出的答案:Swift 中的 Flappy Bird Coding Error

您必须使用相应的 xib oder 故事板初始化您的控制器。例子:

let storyboard = UIStoryboard(name: "myStoryboardName", bundle: nil);
let vc = storyboard.instantiateViewControllerWithIdentifier("myVCID") as UIViewController;

(来自Instantiate and Present a viewController in Swift

否则,您的视图控制器将不知道任何出口,它们将为零。

于 2014-11-05T14:34:16.207 回答