2015-12-17 3 views
1

Я использую SVProgressHUD в моем стремительном проекте в качестве рамки. Он отлично работает в iOS 8. У меня есть логин с Facebook в моем приложении. всякий раз, когда я использую логин SVProgressHUD, вы не просматриваете приложение. Но когда я убил приложение и запустил SVProgressHUD, он будет работать нормально. Я уже добавил необходимые ключи в info.plist. Я не могу понять проблему. Пожалуйста, дайте решение.SVProgressHud не отображается в iOS 9, когда приложение используется с помощью Facebook

Редактировать: если я изменил «loginbehaviour» на Web и SystemAccount. он работает нормально.

среда FBSDK: - 4.8.0 XCode: - 6.4, 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() 
} 

ответ

0

пытается показывать SVProgressHUD в основной очереди при вызове из блока

dispatch_async(dispatch_get_main_queue(), { 
      SVProgressHUD.showWithStatus(NSLocalizedString("LOGIN_PROGRESS_MSG", comment: "")) 

      }) 
+2

Я уже пробовал это. но не работает –

1

Svprogresshud не показан в случае тяжелой задачи выступают на главном thread.showing загрузчика после задержки от 4 мс решить проблему

DispatchQueue.main.asyncAfter(deadline: .now() + .milliseconds(400)) { 
      SVProgressHUD.show() 
     } 

 Смежные вопросы

  • Нет связанных вопросов^_^