我在我的swift项目中使用SVProgressHUD
作为框架。在iOS 8中运行正常。我已在我的应用中使用Facebook登录。每当我使用登录SVProgressHUD
时,该应用程序都不会显示。但是,当我杀死该应用程序并启动SVProgressHUD
时,它将正常工作。我已经在info.plist中添加了必需的键。我无法找出问题所在。请任何人给出解决方案。
编辑:如果我将“loginbehaviour”更改为Web和SystemAccount。它工作正常。
环境FBSDK
:-4.8.0XCode
:-6.4,Swift 1.2
LoginViewController.swift
func loginButton(loginButton: FBSDKLoginButton!,
didCompleteWithResult
result: FBSDKLoginManagerLoginResult!,
error: NSError!) {
SVProgressHUD.showWithStatus(NSLocalizedString("LOGIN_PROGRESS_MSG", comment: ""))
if (error != nil) {
DDLogError("FB Login error: \(error.localizedDescription)")
SVProgressHUD.showErrorWithStatus(NSLocalizedString(error.localizedDescription, comment: ""))
} else if result.isCancelled {
DDLogError("FB Login cancelled")
SVProgressHUD.showErrorWithStatus(NSLocalizedString("Login cancelled", comment: ""))
} else {
DDLogDebug("FB Login success")
SVProgressHUD.showWithStatus(NSLocalizedString("FB_USER_FETCH_MSG", comment: ""))
returnUserData()
}
}
Appdelegate.swift
let fbLaunch = FBSDKApplicationDelegate.sharedInstance().application(application,
didFinishLaunchingWithOptions: launchOptions) // Added this method in didFinishLaunchingWithOptions method
也实施了
func application(application: UIApplication,
openURL url: NSURL,
sourceApplication: String?,
annotation: AnyObject?) -> Bool {
return FBSDKApplicationDelegate.sharedInstance().application(
application,
openURL: url,
sourceApplication: sourceApplication,
annotation: annotation)
}
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.
LocationManager.sharedInstance.startLocationManger()
FBSDKAppEvents.activateApp()
//Send device token change
APNSManager.validateAndUpdateAPNSToken()
//Look for APNS payload in background if we have saved any
APNSManager.handlePendningAPNSPayloads()
}
最佳答案
如果在主线程上执行繁重的任务,则不会显示svprogresshud。延迟4 ms后显示加载程序将解决问题
DispatchQueue.main.asyncAfter(deadline: .now() + .milliseconds(400)) {
SVProgressHUD.show()
}