2017-06-18 64 views
-1

我是编程新手,正在尝试制作应用程序。我现在的问题是,当我启动模拟器时,应用程序不显示,只有黑色和顶部的电池/时间行。我尝试过重新设置模拟器,清理程序以及其他对话中的许多其他内容,但没有任何成效。可能是什么问题呢?模拟器变成黑色

我可以插入你需要的编码线。

的ViewController:

import UIKit 
import GoogleSignIn 
import Firebase 


@UIApplicationMain 
class AppDelegate: UIResponder, UIApplicationDelegate, GIDSignInDelegate { 


func sign(_ signIn: GIDSignIn!, didDisconnectWith user: GIDGoogleUser!, withError error: Error!) { 

} 

func sign(_ signIn: GIDSignIn!, didSignInFor user: GIDGoogleUser!, withError error: Error!) { 

} 
var window: UIWindow? 







func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions:[NSObject: AnyObject]?) -> Bool { 
FIRApp.configure() 

self.window = UIWindow(frame:UIScreen.main.bounds) 
let mainStoryboard: UIStoryboard = UIStoryboard(name: "Main", bundle: nil) 
var ViewController: ViewController = mainStoryboard.instantiateViewController(withIdentifier: "ExampleController") as! ViewController 

self.window?.rootViewController = ViewController 

self.window?.makeKeyAndVisible() 


var configureError: NSError? 
GGLContext.sharedInstance().configureWithError(&configureError) 
assert(configureError == nil, "Error configuring Google services: \(configureError)") 

GIDSignIn.sharedInstance().clientID = "YOUR_CLIENT_ID" 
GIDSignIn.sharedInstance().delegate = self 




GIDSignIn.sharedInstance().clientID = FIRApp.defaultApp()?.options.clientID 




// Initialize sign-in 
return true 





    func application(_ application: UIApplication, 
        open url: URL, sourceApplication: String?, annotation: Any) -> Bool { 
     return GIDSignIn.sharedInstance().handle(url, 
               sourceApplication: sourceApplication, 
               annotation: annotation) 

    } 
    func sign(_ signIn: GIDSignIn!, didSignInFor user: GIDGoogleUser!, 
       withError error: Error!) { 
     if let error = error { 
      print("\(error.localizedDescription)") 
      // [START_EXCLUDE silent] 
      NotificationCenter.default.post(
       name: Notification.Name(rawValue: "ToggleAuthUINotification"), object: nil, userInfo: nil) 
      // [END_EXCLUDE] 
     } else { 
      // Perform any operations on signed in user here. 
      let userId = user.userID     // For client-side use only! 
      let idToken = user.authentication.idToken // Safe to send to the server 
      let fullName = user.profile.name 
      let givenName = user.profile.givenName 
      let familyName = user.profile.familyName 
      let email = user.profile.email 
      // [START_EXCLUDE] 
      NotificationCenter.default.post(
       name: Notification.Name(rawValue: "ToggleAuthUINotification"), 
       object: nil, 
       userInfo: ["statusText": "Signed in user:\n\(fullName)"]) 
      // [END_EXCLUDE] 
     } 

     func sign(_ signIn: GIDSignIn!, didDisconnectWith user: GIDGoogleUser!, 
        withError error: Error!) { 
      // Perform any operations when the user disconnects from app here. 
      // [START_EXCLUDE] 
      NotificationCenter.default.post(
       name: Notification.Name(rawValue: "ToggleAuthUINotification"), 
       object: nil, 
       userInfo: ["statusText": "User has disconnected."]) 
      // [END_EXCLUDE] 


    } 

} 

故事板:

import UIKit 
import GoogleSignIn 
import Firebase 


@UIApplicationMain 
class AppDelegate: UIResponder, UIApplicationDelegate, GIDSignInDelegate { 


func sign(_ signIn: GIDSignIn!, didDisconnectWith user: GIDGoogleUser!, withError error: Error!) { 

} 

func sign(_ signIn: GIDSignIn!, didSignInFor user: GIDGoogleUser!, withError error: Error!) { 

} 
var window: UIWindow? 







func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions:[NSObject: AnyObject]?) -> Bool { 
FIRApp.configure() 
return true 
self.window = UIWindow(frame:UIScreen.main.bounds) 
let mainStoryboard: UIStoryboard = UIStoryboard(name: "Main", bundle: nil) 
var ViewController: ViewController = mainStoryboard.instantiateViewController(withIdentifier: "ExampleController") as! ViewController 

self.window?.rootViewController = ViewController 

self.window?.makeKeyAndVisible() 

return true 
var configureError: NSError? 
GGLContext.sharedInstance().configureWithError(&configureError) 
assert(configureError == nil, "Error configuring Google services: \(configureError)") 

GIDSignIn.sharedInstance().clientID = "YOUR_CLIENT_ID" 
GIDSignIn.sharedInstance().delegate = self 

return true 





GIDSignIn.sharedInstance().clientID = FIRApp.defaultApp()?.options.clientID 




// Initialize sign-in 

return true 





    func application(_ application: UIApplication, 
        open url: URL, sourceApplication: String?, annotation: Any) -> Bool { 
     return GIDSignIn.sharedInstance().handle(url, 
               sourceApplication: sourceApplication, 
               annotation: annotation) 

    } 
    func sign(_ signIn: GIDSignIn!, didSignInFor user: GIDGoogleUser!, 
       withError error: Error!) { 
     if let error = error { 
      print("\(error.localizedDescription)") 
      // [START_EXCLUDE silent] 
      NotificationCenter.default.post(
       name: Notification.Name(rawValue: "ToggleAuthUINotification"), object: nil, userInfo: nil) 
      // [END_EXCLUDE] 
     } else { 
      // Perform any operations on signed in user here. 
      let userId = user.userID     // For client-side use only! 
      let idToken = user.authentication.idToken // Safe to send to the server 
      let fullName = user.profile.name 
      let givenName = user.profile.givenName 
      let familyName = user.profile.familyName 
      let email = user.profile.email 
      // [START_EXCLUDE] 
      NotificationCenter.default.post(
       name: Notification.Name(rawValue: "ToggleAuthUINotification"), 
       object: nil, 
       userInfo: ["statusText": "Signed in user:\n\(fullName)"]) 
      // [END_EXCLUDE] 
     } 

     func sign(_ signIn: GIDSignIn!, didDisconnectWith user: GIDGoogleUser!, 
        withError error: Error!) { 
      // Perform any operations when the user disconnects from app here. 
      // [START_EXCLUDE] 
      NotificationCenter.default.post(
       name: Notification.Name(rawValue: "ToggleAuthUINotification"), 
       object: nil, 
       userInfo: ["statusText": "User has disconnected."]) 
      // [END_EXCLUDE] 


    } 

} 

func applicationWillResignActive(_ application: UIApplication) { 
    // Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state. 
    // Use this method to pause ongoing tasks, disable timers, and invalidate graphics rendering callbacks. Games should use this method to pause the game. 
} 

func applicationDidEnterBackground(_ application: UIApplication) { 
    // Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later. 
    // If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits. 
} 

func applicationWillEnterForeground(_ application: UIApplication) { 
    // Called as part of the transition from the background to the active state; here you can undo many of the changes made on entering the background. 
} 

func applicationDidBecomeActive(_ application: UIApplication) { 
    // Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface. 
} 

func applicationWillTerminate(_ application: UIApplication) { 
    // Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:. 
} 


}} 
+0

请张贴您的代码,否则它只是疯狂的猜测。 – Losiowaty

+0

你需要什么代码? –

+0

你的初始视图控制器应该是一个好开始,加上你可能在'storyboard' /'xib'中完成的任何配置 – Losiowaty

回答

0

看来你的问题就出在你的AppDelegate。看起来你在application:didFinishLaunchingWithOptions:方法中有多个return语句 - 执行不会到达第一个之后的部分。所以你的视图控制器实例化将无法到达。只需删除除最后一个之外的所有return语句,并且所有内容都可以正常工作。

+0

我现在已经尝试过,但没有奏效。我更新了问题中的AppDelegate,有没有我忘记的东西? –

+0

你为什么这样做 - 'self.window = UIWindow(frame:UIScreen.main.bounds)'?窗口应该由系统为你初始化。 – Losiowaty

+0

这是另一个对话说如果模拟器是黑色的可以帮助,但是没有帮助我,所以也许我应该删除它。但问题出现在我插入之前。 –