Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/93.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 在AppDelegate启动中访问根视图控制器_Ios_Swift_Appdelegate - Fatal编程技术网

Ios 在AppDelegate启动中访问根视图控制器

Ios 在AppDelegate启动中访问根视图控制器,ios,swift,appdelegate,Ios,Swift,Appdelegate,在AppDelegate应用程序方法中,我们正在访问根视图控制器: let splitViewController = self.window!.rootViewController as! UISplitViewController .... set variables on splitViewController let storyboard = UIStoryboard(name: "Main", bundle: nil) let controller = storyboard.inst

在AppDelegate应用程序方法中,我们正在访问根视图控制器:

let splitViewController = self.window!.rootViewController as! UISplitViewController
.... set variables on splitViewController
let storyboard = UIStoryboard(name: "Main", bundle: nil)
let controller = storyboard.instantiateViewController(withIdentifier: "Home") as UIViewController
self.present(controller, animated: true, completion: nil)
成功登录后,我们重定向到根视图控制器:

let splitViewController = self.window!.rootViewController as! UISplitViewController
.... set variables on splitViewController
let storyboard = UIStoryboard(name: "Main", bundle: nil)
let controller = storyboard.instantiateViewController(withIdentifier: "Home") as UIViewController
self.present(controller, animated: true, completion: nil)

但这个登录过程似乎正在清除步骤a中设置的变量。大概在步骤b中,我们正在重新创建控制器。如何在不清除#a中设置的变量的情况下重定向?

我们遵循了在需要时切换根视图控制器的方法。我们启动应用程序,如果用户未登录,我们将root设置为LoginViewController。登录后,我们将根目录设置回UISplitViewController。解决方案来自

我们遵循了在需要时切换根视图控制器的方法。我们启动应用程序,如果用户未登录,我们将root设置为LoginViewController。登录后,我们将根目录设置回UISplitViewController。解决方案来自

,这意味着您想在登录成功时更改根视图控制器?我只想在启动时初始化根视图控制器。然后在登录后重定向到它。如果它是rootViewcontroller,为什么需要重定向..既然你是以rootViewcontroller的身份访问splitViewController,我想它是在情节提要中设置的。应用程序在启动时加载splitViewController..在启动时,如果用户未登录,我们重定向到登录控制器。登录后,我们将重定向到root。不要这样做…您需要将loginViewController设置为rootViewController,并在登录成功时显示splitViewController。从下一次开始,您将检查是否已登录use。如果是,您只需从登录中显示splitViewController,它可能位于ViewWillAspect方法中,也可能来自appdelegate,使用户不知道他刚通过LoginVC。这意味着您要在登录成功时更改根视图控制器?我只想在启动时初始化根视图控制器。然后在登录后重定向到它。如果它是rootViewcontroller,为什么需要重定向..既然你是以rootViewcontroller的身份访问splitViewController,我想它是在情节提要中设置的。应用程序在启动时加载splitViewController..在启动时,如果用户未登录,我们重定向到登录控制器。登录后,我们将重定向到root。不要这样做…您需要将loginViewController设置为rootViewController,并在登录成功时显示splitViewController。从下一次开始,您将检查是否已登录use。如果是,您只需从登录名显示splitViewController,该登录名可能位于ViewWillExample方法中,或者来自appdelegate,使用户不知道他刚刚通过LoginVC。