Twitter登录按钮的问题
Posted
技术标签:
【中文标题】Twitter登录按钮的问题【英文标题】:Trouble with Twitter Login Button 【发布时间】:2018-06-25 07:05:24 【问题描述】:在我的 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 对话框被关闭后,不会调用完成。
什么给了?
【问题讨论】:
self.twitterButton = [TWTRLogInButton buttonWithLogInCompletion:...]
:这会覆盖没有框架的self.twitterButton
。由于它是一个 IBOutlet,如果您检查该行之前和之后的地址,它应该是不同的。检查twittercommunity.com/t/…是一样的解释,并给出了解决方案。
谢谢!您为什么不将此作为答案发布,然后我可以奖励您!
【参考方案1】:
它在Twitter Community forum 中有解释并且有意义(没有测试它),但我会在这里发布它以在 *** 上获得答案。
您的按钮是这样声明的,并且在您的 Storyboard/Xib 中存在并连接:
@property (retain, nonatomic) IBOutlet TWTRLogInButton *twitterButton;
来自+(instancetype)buttonWithLogInCompletion:(TWTRLogInCompletion)completion
的doc(有+(instancetype)
),文档说(我把重要的部分加粗)
返回一个新的登录按钮,点击它会启动 Twitter 登录 并在登录成功或失败时调用completion。
所以当你这样做时:
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
];
【讨论】:
我将我的答案添加为社区 Wiki,因为我没有真正测试过,并且问题和答案已经存在于 Twitter 社区论坛上。如果可能,请随意对 Twitter 社区论坛上的答案进行投票/喜欢(或他们使用的其他类似系统)。以上是关于Twitter登录按钮的问题的主要内容,如果未能解决你的问题,请参考以下文章
我可以在 iOS 中自定义 Twitter 工具包的登录按钮吗?
swift - 创建没有完成块的 Twitter 登录按钮?
在 iOS/Android/Facebook/Twitter 政策中,是不是可以在没有用户单击登录按钮的情况下自动登录用户?