【发布时间】:2017-08-25 19:53:34
【问题描述】:
我有一个包含注册和登录视图控制器的应用程序。一旦用户注册或登录,他们就会被连接到主视图控制器。我已经实现NSUserDefaults 来存储用户登录状态的布尔值,这样当他们重新打开应用程序时,它们会自动连接到主视图控制器,而不必通过登录视图控制器。我正在检查didFinishLaunchingWithOptions 中的用户登录状态,如果NSUserDefaults 中存储的登录状态为真,我会启动到主vc 的segue。
我目前正在使用下面的代码来展示主视图控制器:
let storyboard = UIStoryboard(name: "Main", bundle: nil)
let viewController = storyboard.instantiateViewController(withIdentifier :"Recorder") as! RecordController
let navController = UINavigationController.init(rootViewController: viewController)
if let window = self.window, let rootViewController = window.rootViewController
{
var currentController = rootViewController
while let presentedController = currentController.presentedViewController
{
currentController = presentedController
}
currentController.present(navController, animated: true, completion: nil)
}
这样做的问题是我不希望我的主视图控制器成为我的根视图控制器,并且呈现主视图控制器正在创建一些我无法弄清楚的奇怪的垂直间距 - 可能是一些问题导航控制器。
【问题讨论】:
-
@Shades 我尝试了该解决方案。问题是我有一个导航控制器,当我登陆我的主视图控制器时,我的应用程序因为这条线而崩溃
self.navigationController!.navigationBar.barTintColor = UIColor.white -
给导航控制器一个storyboard ID并直接实例化它
-
@Shades 也尝试过。我的 IBOutlets 现在在我的主视图控制器中失败了。
-
我不确定你所说的“我不希望我的主视图控制器成为我的根视图控制器”是什么意思,因为你希望你的导航控制器成为你的根视图控制器?