Я использовал ткань для импорта TwitterKit
в мой проект Swift XCode. Я хочу создать кнопку входа в Twitter, используя UIView, чтобы я мог раскрыть ее в раскадровке.Twitter Кнопка входа в систему iOS с помощью раскадровки?
Вот что я сделал:
1) Я создал UIView в раскадровке и установить класс TWTRLogInButton
.
2) На мой взгляд, контроллер, я создал IBOutlet.
@IBOutlet var twitterLoginView: TWTRLogInButton!
3) Я изменил образец кода из Ткани в соответствии с моей настройкой. Вот исходный код из ткани, которая идет в моем viewDidLoad()
:
let logInButton = TWTRLogInButton { (session, error) in
if let unwrappedSession = session {
let alert = UIAlertController(title: "Logged In",
message: "User \(unwrappedSession.userName) has logged in",
preferredStyle: UIAlertControllerStyle.Alert
)
alert.addAction(UIAlertAction(title: "OK", style: UIAlertActionStyle.Default, handler: nil))
self.presentViewController(alert, animated: true, completion: nil)
} else {
NSLog("Login error: %@", error!.localizedDescription);
}
}
// TODO: Change where the log in button is positioned in your view
logInButton.center = self.view.center
self.view.addSubview(logInButton)
Вот мой отредактированный код ссылки на мой взгляд, вместо:
twitterLoginView = TWTRLogInButton { (session, error) in
if let unwrappedSession = session {
let alert = UIAlertController(title: "Logged In",
message: "User \(unwrappedSession.userName) has logged in",
preferredStyle: UIAlertControllerStyle.Alert
)
alert.addAction(UIAlertAction(title: "OK", style: UIAlertActionStyle.Default, handler: nil))
self.presentViewController(alert, animated: true, completion: nil)
} else {
print("Login Error, \(error?.localizedDescription)")
}
}
XCode принимает это, но когда я запускаю приложение, я получаю следующие ошибки в журналах, когда я выбираю Twitter Войти Кнопка:
TWTRLogInButton был создан без каких-либо completionBlock набор
Я не уверен, почему это происходит, у кого есть идеи?
Где вы звонили в twitterLoginView? – ridvankucuk
Часть I, помеченная как «мой отредактированный код», была указана в 'viewDidLoad'. Ткань дает мне некоторый код для добавления в viewDidLoad, и я попытался немного его модифицировать, чтобы тот факт, что я уже добавил кнопку на раскадровке. Нужно ли мне звонить в другое место? – BensTechTips
Вы получите свое предупреждение, потому что создали свою кнопку как IBOutlet. Вы пытаетесь переопределить переменную. Если вы создадите его programitacally, вы не получите ошибки в этом случае. – ridvankucuk