2015-04-10 1 views
0

Работа с контроллером разделенного представления ... У меня есть переменная, которая получает значение в моем классе settingsController, и теперь в моем основном контроллере представления мне нужно получить доступ к ценной переменной. Как я могу получить settingsViewController.selectedCounty?Доступ к собственности из другого вида Класс контроля в Swift?

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?

enter image description here

+0

Подумайте об этом: 'пусть настройки = settingsViewController()' создает * новый * экземпляр класса settingsViewController, который полностью * несвязанный * к существующему экземпляру settingsViewController. –

+0

Как настроить параметры управленияViewController и главного контроллера представлений с помощью контроллера разделенного вида? – rdelmar

+0

MartinR Я понимаю, что вы говорите, и мне это тоже показалось странным, но почему это, если я создаю новый файл Swift «MyNewClass», который включает переменную X, затем создайте экземпляр MYNewClass через myNewClass = MyNewClass(), I я могу позвонить myNewClass.x? Другими словами, пользовательский класс, который я могу вызвать, но я не могу вызвать свой класс settingsViewController, потому что он выходит из ViewController? – GarySabo

ответ

1

Я кончался выяснить это, мне нужно позвонить prepareForSegue на settingsViewController, чтобы быть в состоянии передать это мой другой ViewController (обратите внимание, я изменил его FirstViewController, чтобы избежать путаницы:

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) { 
    var destViewController: FirstViewController = segue.destinationViewController as! FirstViewController 
    destViewController.selectedCounty = selectedCounty 
} 
-1

Линия

let settings = settingsViewController() 

создает постоянное имя settings типа settingsViewController. Затем в строке

let selectedCounty = settingsViewController.selectedCounty 

Эта константа не доступна. Скорее доступно свойство типа selectedCounty типа settingsViewController. Поскольку такого свойства типа нет, это ошибка.

Доступ свойство следующим образом:

let selectedCounty = settings.selectedCounty 

или сделать его свойство типа:

+0

Извините, я набрал свой код неправильно, у меня было так, как вы предложили: settings.selectedCounty, но получить ту же ошибку – GarySabo

0

в Swift начальное значение свойства (хранимой) не может зависеть от другое имущество (-ы). Здесь ваша собственность ViewController (то есть selectedCounty) зависит от типа недвижимости settingsViewController (т. Е. selectedCounty).

Решение: Вы можете назначить его позже в init()

let selectedCounty:String 

init(){ 

selectedCounty = settings.selectedCounty! 

} 

 Смежные вопросы

  • Нет связанных вопросов^_^