从 Xcode 9 开始在 Twitterkit 中撰写推文 Swift 4 & IOS 11
Composing tweet in Twitterkit since Xcode 9 with Swift 4 & IOS 11
自从升级到 Xcode 9 和 Swift 4 后,我一直忙于让我的应用程序重新运行。但我仍在努力让我的推文编辑器正常工作。在 Xcode 8 这仍然工作正常...
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)
}
}
}
我现在是从 Twitter 工具包网站上乱七八糟地复制粘贴并调整的,因为我的共享功能都在一个单独的 class。
当这段代码启动时,我的 Twitter 应用程序被打开,并且身份验证屏幕如我所料打开:
Authenticating
当我连接时,它会快速显示我的时间线,而不只是返回到我的应用程序。不作曲 window...
有人有想法吗?
在 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
}
我只是对两种方法感到困惑。一旦使用错误的方法,就会出现推特登录,输入用户名和密码,然后点击完成,再次出现登录页面。那是一个无限循环。
open func application(_ app: UIApplication, open url: URL, options: [UIApplicationOpenURLOptionsKey : Any] = [:]) -> Bool {
return TWTRTwitter.sharedInstance().application(app, open: url, options: options)
}
func application(_ application: UIApplication, open url: URL, sourceApplication: String?, annotation: Any) -> Bool {
return TWTRTwitter.sharedInstance().application(application, open: url, options: [:])
}
别用第二个! 使用第一个!
自从升级到 Xcode 9 和 Swift 4 后,我一直忙于让我的应用程序重新运行。但我仍在努力让我的推文编辑器正常工作。在 Xcode 8 这仍然工作正常...
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)
}
}
}
我现在是从 Twitter 工具包网站上乱七八糟地复制粘贴并调整的,因为我的共享功能都在一个单独的 class。
当这段代码启动时,我的 Twitter 应用程序被打开,并且身份验证屏幕如我所料打开: Authenticating
当我连接时,它会快速显示我的时间线,而不只是返回到我的应用程序。不作曲 window...
有人有想法吗?
在 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
}
我只是对两种方法感到困惑。一旦使用错误的方法,就会出现推特登录,输入用户名和密码,然后点击完成,再次出现登录页面。那是一个无限循环。
open func application(_ app: UIApplication, open url: URL, options: [UIApplicationOpenURLOptionsKey : Any] = [:]) -> Bool {
return TWTRTwitter.sharedInstance().application(app, open: url, options: options)
}
func application(_ application: UIApplication, open url: URL, sourceApplication: String?, annotation: Any) -> Bool {
return TWTRTwitter.sharedInstance().application(application, open: url, options: [:])
}
别用第二个! 使用第一个!