2015-11-16 2 views
0

Как передать состояние NSUserDefault между несколькими классами в Swift? В этом случае я хочу передать это состояние между одним TableViewController, где вы меняете состояние на коммутаторе и один начальный VC. Вот небольшая модель, чтобы понять ... enter image description hereПередача данных между ViewController и TableVC с помощью NSUserDefaults (Swift)

Я использовал это, чтобы установить состояние с помощью переключателя:

@IBAction func changeTouchIDState(sender: AnyObject) { 

    if TouchIDSwitch.on { 

     NSUserDefaults.standardUserDefaults().setBool(true, forKey: "State") 

    } else { 

     NSUserDefaults.standardUserDefaults().setBool(false, forKey: "State") 

    } 
} 

Если состояние = верно, то начальное VC следует задать вопрос о подлинности.

Спасибо!

ответ

1

Ваш вопрос требует немного больше объяснений, я не понимаю, почему вы хотите передать значение, поскольку вы уже храните в NSUserDefaults, доступ к которому вы можете получить в любом class вашего приложения.

Согласно моему пониманию вашей проблемы я предлагаю решение:

Как вы уже хранение государству в NSUserDefaults так, прежде чем представить первоначальную проверку VC NSUserDefaults.standardUserDefaults().boolForKey("State"), если ее так, спросите проверку подлинности в противном случае нет.

+0

Большое спасибо! Я не знал, что NSUserDefault активен во всех классах .... – dev

0

После установки BOOL, вы должны синхронизировать:

NSUserDefaults.standardUserDefaults().synchronize() 

Затем, вы можете получить доступ к этому значение с:

func boolForKey(_ defaultName: String) -> Bool 
+0

Нет, нет необходимости вызывать 'synchronize'. Вы можете получить доступ к значению без вызова 'synchronize'. – rmaddy

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