2015-08-24 4 views
0

Я создал пользовательский UISegment управленияизменения значения переменной из другого класса в быстрой

@IBDesignable class CardsSegmentedControl: UIControl { 

private var labels = [UILabel]() 
var thumbView = UIView() 


var items: [String] = ["Saved Cards", "Add Card"] { 
    didSet { 
     setupLabels() 
    } 
} 

var selectedIndex : Int = 0 { 
    didSet { 
     displayNewSelectedIndex() 
    } 
} 
.... 
} 

Сейчас я хочу, чтобы изменить значение переменной selectedIndex в ViewController где я добавляю этот пользовательский элемент управления сегмента in.

Я думаю, что это проблема доступа/изменения переменных из другого класса.

Я попытался создать class func, который установил бы значение selectedIndex, но я не могу получить его для доступа к переменной selectedIndex.

Все еще довольно новый для Swift, поэтому, пожалуйста, несите меня.

+0

у вас есть функция init func? –

+0

no I dont. Должен ли я установить значение 'selectedIndex' с помощью функции init, а затем использовать его для изменения значения в другом месте? – genaks

+0

selectedIndex - это переменная экземпляра, поэтому доступ к функциям класса невозможен. – BaSha

ответ

2
// Inside your ViewController class, create a new instance of your custom class 
var cardSegmentedControl = CardSegmentedControl() 

// here, change its property value 
cardSegmentedControl.selectedIndex = 1 
+0

Взгляните на этот поток Stackoverflow для понимания действий willSet и didSet: http://stackoverflow.com/questions/24006234/what-is-the-purpose- of-willset-and-didset-in-swift –

+0

Спасибо! Это спасло мое время. – Raja

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