2017-08-31 8 views
0

私はすでにこの質問の答えのほとんどをチェックしましたが、ほとんどがCocoa Touch用です。私はこれを私のappdelegate for Macアプリケーションに実装する必要があります。Macアプリケーションでカスタムビューコントローラをルートビューコントローラとして追加しますか?

ユーザーがログインすると、メイン画面にリダイレクトされます。ログイン画面に移動します。

let controller:NSWindowController = NSWindowController() 
let viewController:NSViewController 

let storyboard = NSStoryboard.init(name: "Main", bundle: nil) 
    let stringLoginStatus = NSUserDefaults.standardUserDefaults().objectForKey(Constants.Key_LoginStatus) as? String 
    if stringLoginStatus != nil 
    { 
     if stringLoginStatus == "true" 
     { 
      viewController = storyboard.instantiateControllerWithIdentifier("Channel") as! NSViewController 
     } 
     else{ 
      viewController = storyboard.instantiateControllerWithIdentifier("ViewController") as! NSViewController 
     } 
    } 
    else{ 
     viewController = storyboard.instantiateControllerWithIdentifier("ViewController") as! NSViewController 
    } 

    controller.window?.contentViewController = viewController 
    controller.window?.makeKeyAndOrderFront(self) 

コントローラーが初期化されていないため、エラーが表示されます。

+0

私は「コントローラー」と「viewController」が何であるかも知らない。 –

+0

コードを編集してください。@ElTomato –

答えて

1

あなたのビューコントローラ変更するには、このコードを試してください: -

UIApplication.appWindow.rootViewController = UIStoryboard.main.instantiateViewController(withIdentifier: "customViewControl") 

// MARKを:appWindow

extension UIApplication { 
     class var appWindow: UIWindow! { 
      return (UIApplication.shared.delegate?.window!)! 
     } 
    } 

// MARKを取得するためのUIApplication拡張を行います。メイン画面

を取得するにはストーリーボードの拡張を行います
extension UIStoryboard { 
    class var main: UIStoryboard { 
     let storyboardName: String = Bundle.main.object(forInfoDictionaryKey: "UIMainStoryboardFile") as! String 
     return UIStoryboard(name: storyboardName, bundle: nil) 
    } 

}

+0

UIApplicationはCocoa TouchまたはiPhone、iPadアプリケーション用です。 Cocoa、Macアプリケーション(NSApplicationではなくUIApplication)が必要です。 –

関連する問題