登录Master-Detail App - Swift的最佳实践



我想知道什么是实现登录屏幕的最佳实践为Master-Detail应用程序有splitviewcontroller作为根控制器。如果用户没有登录,我使用appDelegate来显示登录屏幕。然而,当我想要解散loginVC的应用程序进入空白的详细信息页,而不是主控制器。会是一个模式登录屏幕更好的选择主-细节应用程序?

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
    // Override point for customization after application launch.
let storyboard = UIStoryboard(name: "Main", bundle: nil)
let loginVC = storyboard.instantiateViewControllerWithIdentifier("LoginVC") as! loginViewController
self.window?.rootViewController = loginVC
return true
let splitViewController = self.window!.rootViewController as! UISplitViewController
let navigationController = splitViewController.viewControllers[splitViewController.viewControllers.count-1] as! UINavigationController
navigationController.topViewController!.navigationItem.leftBarButtonItem = splitViewController.displayModeButtonItem()
splitViewController.delegate = self
return true

然后在我的loginVC:

@IBAction func goHome(sender: AnyObject) {
 let storyboard = UIStoryboard(name: "Main", bundle: nil)
 let splitViewController = storyboard.instantiateViewControllerWithIdentifier("SplitViewControllerID") as! UISplitViewController
 let appDelegate = UIApplication.sharedApplication().delegate as! AppDelegate
  appDelegate.window?.rootViewController = splitViewController    
    }

通过改变goHome函数的代码,它为我工作。下面是代码:

@IBAction func goHome(sender: AnyObject) {
    let storyboard = UIStoryboard(name: "Main", bundle: nil)
    let splitViewController = storyboard.instantiateViewController(withIdentifier: "SplitViewControllerID") as! UISplitViewController
    let appDelegate = UIApplication.shared.delegate as! AppDelegate
    appDelegate.window?.rootViewController = splitViewController
    splitViewController.preferredDisplayMode = .allVisible
    let navigationController = splitViewController.viewControllers[splitViewController.viewControllers.count-1] as! UINavigationController
    navigationController.topViewController!.navigationItem.leftBarButtonItem = splitViewController.displayModeButtonItem
}

最新更新