gpt4 book ai didi

Swift 中的 iOS 登录/注销实现

转载 作者:搜寻专家 更新时间:2023-10-31 08:12:41 25 4
gpt4 key购买 nike

我一直在尝试快速为 iOS 应用程序实现登录/注销流程。这是我的 Storyboard -

Main Storyboard

在主视图 Controller (蓝屏)中,我实现了以下代码来检测用户是否已经登录,然后自动将他们带到 TableView Controller -

覆盖函数 viewDidAppear(动画: bool ){

    if PFUser.currentUser() != nil {

self.performSegueWithIdentifier("test", sender: self)

}

问题是,当我通过其中一个绿色屏幕登录或登录时,表格 View 导航栏显示不同。当用户打开应用程序并且已经登录时,“退出”按钮会正确显示,但是,通过绿屏登录或登录时,导航栏包含一个“<返回”按钮。

有人能解释一下登录/注销流程需要如何在 Storyboard 中以及在 Swift 中以编程方式实现吗?我看过一些 Objective-C 示例,但似乎无法在 Swift 中找到。如果有人有一个很好的例子,那将非常有帮助。

最佳答案

swift 4在 LoginViewController 的登录按钮 Action 中

@IBAction func abtn_login(_ sender: Any) {

let appDel:AppDelegate = UIApplication.shared.delegate as! AppDelegate
let mainStoryBoard: UIStoryboard = UIStoryboard(name: "Main", bundle: nil)

let centerVC = mainStoryBoard.instantiateViewController(withIdentifier: "InitialScreenTabBarController") as! InitialScreenTabBarController

// setting the login status to true
UserDefaults.standard.set(true, forKey: "isUserLoggedIn")
UserDefaults.standard.synchronize()
appDel.window!.rootViewController = centerVC
appDel.window!.makeKeyAndVisible()


}

根据您的情况验证登录。

在具有注销按钮的 View Controller 中。

@IBAction func abtn_logout(_ sender: Any) {

UserDefaults.standard.set(false, forKey: "isUserLoggedIn")
UserDefaults.standard.synchronize()

let loginVC = self.storyboard?.instantiateViewController(withIdentifier: "LoginViewController") as! LoginViewController

let appDel:AppDelegate = UIApplication.shared.delegate as! AppDelegate

appDel.window?.rootViewController = loginVC

}

AppDelegate中,didFinishLaunchingWithOptions

let userLoginStatus = UserDefaults.standard.bool(forKey: "isUserLoggedIn")

if(userLoginStatus)
{
let mainStoryBoard: UIStoryboard = UIStoryboard(name: "Main", bundle: nil)
let centerVC = mainStoryBoard.instantiateViewController(withIdentifier: "InitialScreenTabBarController") as! InitialScreenTabBarController
window!.rootViewController = centerVC
window!.makeKeyAndVisible()
}

关于Swift 中的 iOS 登录/注销实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32061540/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com