在视图可见之前执行

时间:2016-01-06 03:26:04

标签: ios iphone swift uiviewcontroller

我有两个观点

ListView

我的初始视图是ViewController,其中包含按钮和一些文本。

我想要实现的目标

如果用户尚未登录,请执行将视图转移到Login的segue。

我做了什么

在我的ViewController中,我检查了USER_ID是否为nil然后如果它为n,那么我将执行segue。

ViewController-> Main view
LoginVC -> LogIn View

我的问题是什么

我的问题是我是否使用viewWillAppear或viewDidLoad或viewDidAppear将视图从 ViewController 传输到LoginVC。 ViewController 将在登录屏幕出现之前一秒钟内显示我想摆脱它。有人帮我解决这个问题。

1 个答案:

答案 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并在用户注销后导航回登录屏幕。