我有两个观点
ListView
我的初始视图是ViewController,其中包含按钮和一些文本。
我想要实现的目标
如果用户尚未登录,请执行将视图转移到Login的segue。
我做了什么
在我的ViewController中,我检查了USER_ID是否为nil然后如果它为n,那么我将执行segue。
ViewController-> Main view
LoginVC -> LogIn View
我的问题是什么
我的问题是我是否使用viewWillAppear或viewDidLoad或viewDidAppear将视图从 ViewController 传输到LoginVC。 ViewController 将在登录屏幕出现之前一秒钟内显示我想摆脱它。有人帮我解决这个问题。
答案 0 :(得分:4)
我的应用程序中有相同的功能。我是通过检查函数 names( attr(obj, "JSON")[[1]][[1]] )
#------------
[1] "country" "city" "topics" "joined" "link"
[6] "bio" "lon" "other_services" "name" "visited"
[11] "self" "id" "state" "lat" "status"
userID
中的AppDelegate.swift
来实现的
因此,删除segue,修改后的代码如下所示:
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool
这样,您就不需要使用 func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
// Override point for customization after application launch.
let storyBoard: UIStoryboard = UIStoryboard(name: "Main", bundle: NSBundle.mainBundle())
if Globals.USER_ID == nil{
let loginScreen = storyBoard.instantiateViewControllerWithIdentifier("LoginVC")
self.window?.rootViewController = loginScreen
}else{
let mainScreen = storyBoard.instantiateViewControllerWithIdentifier("ViewController")
self.window?.rootViewController = mainScreen
}
return true
}
,viewDidLoad()
或viewDidAppear()
等任何方法来实现此目的。
正如此答案的补充 - 在注销发生后再次使用AppDelegate实例。例如,您应该在注销方法中执行以下操作:
viewWillAppear()
这样,您可以清除用户ID并在用户注销后导航回登录屏幕。