ios - Twitter登录按钮出现问题

标签 ios objective-c iphone twitter

在我的iOS应用(Objective-C)中,我使用TWTRLogInButton对用户进行身份验证。

按照说明,我首先将其放入我的 viewcontroller.m的 viewDidLoad 中。

TWTRLogInButton *logInButton = [TWTRLogInButton buttonWithLogInCompletion:^(TWTRSession *session, NSError *error) {
///
}];
    logInButton.center = self.view.center;
    [self.view addSubview:logInButton];

有了所有其他配置,一切正常。

但是,为了更好地控制Twitter登录按钮的位置和大小,我想通过界面生成器添加该按钮。

因此,在我的 viewcontroller.h 中,我添加了:
@property (retain, nonatomic) IBOutlet TWTRLogInButton *twitterButton;

在我的.xib上(是的,我知道)我添加了一个UIView,将其分类为“TWTRLogInButton”,并将其连接到“twitterButton”

然后,在我的 viewcontroller.m 中,在viewDidLoad中,
 self.twitterButton = [TWTRLogInButton buttonWithLogInCompletion:^(TWTRSession *session, NSError *error) {
    ///
    }];

但是以某种方式,当我点击按钮时,在关闭“Twitter对话框”后,不会调用完成。

是什么赋予了?

最佳答案

它在Twitter Community forum中进行了解释并且很有意义(没有对其进行测试),但是我将其发布在此处以在StackOverflow上获得答案。

这样声明您的按钮,并且该按钮已存在并连接在Storyboard / Xib中:

@property (retain, nonatomic) IBOutlet TWTRLogInButton *twitterButton;

+(instancetype)buttonWithLogInCompletion:(TWTRLogInCompletion)completiondoc(存在+(instancetype))和文档说起(我将重要部分加粗了)

返回一个新的登录按钮,在点击该按钮时启动Twitter登录
并在登录成功或失败时调用完成。

因此,当您这样做时:
self.twitterButton = [TWTRLogInButton buttonWithLogInCompletion:^(TWTRSession *session, NSError *error) { 
    //Code for completionHandler
}];

您正在创建一个全新的对象,并且覆盖了先前连接到xib / storyboard的对象,从而使代码与先前在xib / storyboard中设置的对象“失去了联系”。

如何修复它,按钮有一个要设置的属性,即完成处理程序。
@property (nonatomic, copy) TWTRLogInCompletion logInCompletion

因此设置:
[self.twitterButton setLogInCompletion = ^(TWTRSession *session, NSError *error){
    //Code for completionHandler
}];

关于ios - Twitter登录按钮出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48283513/

相关文章:

ios - 应用程序传输安全已阻止明文 HTTP (http ://) resource load since it is insecure

ios - 如何使用 Alamofire multipart 在参数中发送数组

iphone - 服务器未提出质询时的 NSURL 身份验证

ios - 这些日光/夜晚长度近似值的错误在哪里?

objective-c - 我应该与 self 同步还是与方法参数同步?

ios - 如何处理 iOS 中的不同方向

iphone - 导航 Web View

ios - SpriteKit 和 Swift 中的 isDynamic 和 contactDelegate

ios - 如何在 Storyboard上的 Size Inspector 中更改 UITableViewCell 的原始值?

objective-c - Objective c 中对象的潜在泄漏