/ / Przekazywanie danych pomiędzy kontrolerami interfejsów w Xcode 8.0 Swift 3.0 - szybkie, xcode, swift3, apple-watch, wkinterfacecontroller

Przekazywanie danych między kontrolerami interfejsów w Xcode 8.0 Swift 3.0 - szybkie, xcode, swift3, apple-watch, wkinterfacecontroller

Chcę przekazać ciąg pomiędzy dwoma kontrolerami interfejsu. Na InterfaceController1 chcę utworzyć zmienną taką jak:

var level:String = ("easy")

a następnie mieć dostęp do tej zmiennej w InterfaceController2.

Wolałbym nie używać zmiennych globalnych, ponieważ mam świadomość, że nie są one zalecane.

Jest jedna odpowiedź na StackOverFlow, ale została utworzona, gdy Swift 1 był wyłączony i nie mogę znaleźć żadnego aktualnego anwsera.

Dzięki

Odpowiedzi:

0 dla odpowiedzi № 1

Masz kilka opcji, aby to osiągnąć.

  1. Posługiwać się pushController(withName:,context:) i nastaw level jako argument wejściowy kontekstu, następnie w InterfaceController2 awake(withContext:) użyj tej zmiennej.
  2. Użyj singletonów (zadeklaruj zmienną jako statyczną), jeśli potrzebujesz dostępu do zmiennej InterfaceController2 z kilku klas lub jeśli nie nawigujesz bezpośrednio do InterfaceController2.

Jeśli potrzebujesz tylko ustawić tę zmienną z InterfaceController1 i bezpośrednio przedstawiasz InterfaceController2 z InterfaceController1, preferowaną opcją jest opcja 1.