AppDelegateにログインのフラグが書かれている状態
swift
1@UIApplicationMain 2class AppDelegate: UIResponder, UIApplicationDelegate { 3 4 var window: UIWindow? 5 var isLogin: Bool = false 6 7 func application(_ application: UIApplication, didFinishLa...
swift
1class HogeViewController: UIViewController { 2 override func viewDidLoad() { 3 ... 4 // こうすれば全Controllerからログイン状態を取得できるが.... 5 let appDelegate:AppDelegate = UIApplication.sharedApplication().delegate as AppDelegate 6 let isLogin = appDelegate.isLogin 7 } 8}
クラスを切り分けてこちらから参照したい
swift
1class AuthService: UIResponder, UIApplicationDelegate { 2 var isLogin: Bool = false 3}
swift
1class HogeViewController: UIViewController { 2 override func viewDidLoad() { 3 ... 4 let isLogin = AuthService.isLogin 5 6 } 7 8 func login() { 9 AuthService.isLogin = true // こんな風にしたい 10 } 11}
ですが、Controllerから、AuthService.isLoginへの参照と書き換えがうまく行きません。
インスタンスを作れば参照・書き換えできますが、それではコントローラーをまたいで参照することができません。
swift
1class HogeViewController: UIViewController { 2 var as = AuthService() 3 override func viewDidLoad() { 4 ... 5 let isLogin = as.isLogin 6 7 } 8 9 func login() { 10 as.isLogin = true 11 } 12}
AppDelegateクラスを切り分けつつ、コントローラーをまたいでクラスの変数にあく
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/08/08 11:34