Hey I just created an example it will help you:- 
I just use userdefaults to save loginState 
Here is:-
1). TaskViewController
I just created a signOut button in it
import UIKit
class TaskViewController: UIViewController {
@IBOutlet weak var signOutButton: UIButton!
override func viewDidLoad() {
    super.viewDidLoad()
    // Do any additional setup after loading the view.
}
override func viewDidLayoutSubviews() {
    signOutButton.layer.cornerRadius = signOutButton.layer.frame.height/2
}
@IBAction func signOutButtonTapped(_ sender: Any) {
    UserDefaults.standard.set(false, forKey: "isUserLoggedIn")  // here I remove the boolean value
    UserDefaults.standard.synchronize()
    let storyBoard = UIStoryboard(name: "Login", bundle: nil)
    let loginVc = storyBoard.instantiateViewController(withIdentifier: "LoginViewController") as! LoginViewController
    let rootVc = UINavigationController(rootViewController: loginVc)
    UIApplication.shared.keyWindow?.rootViewController = rootVc
}
}
2). AttendanceViewController - I didn't created anything in it
import UIKit
class AttendanceViewController: UIViewController {
override func viewDidLoad() {
    super.viewDidLoad()
    // Do any additional setup after loading the view.
}
}
These both controllers are inside TabBarController which is HomeController
import UIKit
class HomeController: UITabBarController {
override func viewDidLoad() {
    super.viewDidLoad()
}
}
I created it in Main.storyboard file:-

And LoginViewController created in login.storyboard file 

LoginViewController:- here saved the loginState
import UIKit
class LoginViewController: UIViewController {
@IBOutlet weak var loginButton: UIButton!
override func viewDidLoad() {
    super.viewDidLoad()
    // Do any additional setup after loading the view.
}
override func viewDidLayoutSubviews() {
    loginButton.layer.cornerRadius = loginButton.layer.frame.height/2
}
@IBAction func loginButtonTapped(_ sender: Any) {
    let mainStoryboard: UIStoryboard = UIStoryboard(name: "Main", bundle: nil)
    let viewController = mainStoryboard.instantiateViewController(withIdentifier: "HomeController") as! HomeController
    UserDefaults.standard.set(true, forKey: "isUserLoggedIn")
    UserDefaults.standard.synchronize()
    UIApplication.shared.keyWindow?.rootViewController = viewController
}
}
And last in Appdelegate.swift check the loginState in didFinishLaunchingWithOptions like this:-
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
    let userLoginStatus = UserDefaults.standard.bool(forKey: "isUserLoggedIn")
    print(userLoginStatus)
    if(userLoginStatus)
    {
        let mainStoryBoard = UIStoryboard(name: "Main", bundle: nil)
        let centerVC = mainStoryBoard.instantiateViewController(withIdentifier: "HomeController") as! HomeController
        window!.rootViewController = centerVC
        window!.makeKeyAndVisible()
    } else {
        let mainStoryBoard = UIStoryboard(name: "Login", bundle: nil)
        let centerVC = mainStoryBoard.instantiateViewController(withIdentifier: "LoginViewController") as! LoginViewController
        window!.rootViewController = centerVC
        window!.makeKeyAndVisible()
    }
    return true
}
Here is the full project - https://www.dropbox.com/s/3d34raovyx6orda/saveLogin.zip?dl=0