2017-10-19 16 views
0

Depuis la mise à niveau vers Xcode 9 et Swift 4, j'ai été très occupé à faire fonctionner à nouveau mes applications. Mais j'ai encore du mal à faire fonctionner mon compositeur de tweet. Dans Xcode 8 ce fonctionnait toujours bien ...Composer un tweet dans Twitterkit depuis Xcode 9 avec Swift 4 et IOS 11

case "Twitter": 

      if (Twitter.sharedInstance().sessionStore.hasLoggedInUsers()) { 
       // App must have at least one logged-in user to compose a Tweet 
       let composer = TWTRComposerViewController.emptyComposer() 
       UIApplication.shared.keyWindow?.rootViewController?.present(composer, animated: true, completion: nil) 
      } else { 
       // Log in, and then check again 
       Twitter.sharedInstance().logIn { session, error in 
        if session != nil { // Log in succeeded 
         let composer = TWTRComposerViewController.emptyComposer() 
         UIApplication.shared.keyWindow?.rootViewController?.present(composer, animated: true, completion: nil) 
        } else { 
         let alert = UIAlertController(title: "No Twitter Accounts Available", message: "You must log in before presenting a composer.", preferredStyle: .alert) 
         UIApplication.shared.keyWindow?.rootViewController?.present(alert, animated: false, completion: nil) 
        } 
       } 
      } 

Est-ce que je maintenant litterly copie collé sur le site du kit Twitter et ajusté parce que j'ai mes fonctions de partage tous dans une classe séparée.

Lorsque ce morceau de code est démarré, mon application Twitter est en cours d'ouverture, et l'écran authenticatin est ouvert comme ce que je sorte d'attendre: Authenticating

Lorsque je me connecte, il me montre rapidement mon calendrier, et que juste retourne à mon application. Sans composer de fenêtre ...

Quelqu'un a une idée?

Répondre

0

Problème résolu avec l'ajout de ce dans le AppDelegate:

func application(_ app: UIApplication, open url: URL, options: [UIApplicationOpenURLOptionsKey : Any] = [:]) -> Bool { 

    let handled:Bool = true 

    Twitter.sharedInstance().application(app, open: url, options: options) 

    return handled 
}