使用拆分视图控制器...我有一个变量,它在我的settingsViewController类中获取一个值,现在在我的主视图控制器中,我需要访问有价值的变量。我怎样才能访问settingsViewController.selectedCounty?
class settingsViewController: UIViewController, UIPickerViewDataSource, UIPickerViewDelegate {
let titleData = TitleData()
var selectedCounty = String?("Allegany")
试图抓住这个值放在:
class ViewController: UIViewController {
let settings = settingsViewController()
let selectedCounty = settings.selectedCounty
返回“settingsViewController.type”没有名为selectedCounty的成员?
答案 0 :(得分:2)
我最终搞清楚了,我需要在settingsViewController上调用prepareForSegue才能将其传递给我的其他ViewController(注意我将其更改为FirstViewController以避免混淆:
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
var destViewController: FirstViewController = segue.destinationViewController as! FirstViewController
destViewController.selectedCounty = selectedCounty
}
答案 1 :(得分:0)
在Swift中,(存储的)属性的初始值不能依赖于其他属性。
您的ViewController
属性(即selectedCounty
)取决于settingsViewController
的属性(即selectedCounty
)。
<强>解决方案:强>
您可以稍后在init()
let selectedCounty:String
init(){
selectedCounty = settings.selectedCounty!
}
答案 2 :(得分:-1)
该行
let settings = settingsViewController()
创建settings
类型名称settingsViewController
的常量。然后在行
let selectedCounty = settingsViewController.selectedCounty
未访问此常量。而是访问类型selectedCounty
的类型属性settingsViewController
。由于没有这样的类型属性,这是一个错误。
按如下方式访问该媒体资源:
let selectedCounty = settings.selectedCounty
或使其成为类型属性: