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 № 1Masz kilka opcji, aby to osiągnąć.
- Posługiwać się
pushController(withName:,context:)
i nastawlevel
jako argument wejściowy kontekstu, następnie w InterfaceController2awake(withContext:)
użyj tej zmiennej. - 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.