2016-11-11 8 views
0

SplitView Controllerをルートコントローラとして持つMaster-Detailアプリケーションのログイン画面を実装するのがベストプラクティスであると思っていました。ユーザーがログインしていない場合は、appDelegateを使用してログイン画面を表示していますが、loginVCを終了するときは、MasterControllerの代わりに空白のDetailページが表示されます。 Master-Detailアプリのモーダルログイン画面の方が良いでしょうか?私loginVCでMaster-Detail App-Swiftのログインのベストプラクティス

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 

そして:

@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  
    } 
+0

解決策はありましたか? –

答えて

0

それは私の作品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 
} 
関連する問題