FBSDKLoginButtonDelegate不触发委托方法

Con*_*eer 6 facebook ios

登录和注销工作正常.根据Facebook

"您的应用程序可以获取登录的结果或注销事件的通知.为此指派一名代表为FBSDKLoginButton,确认到FBSDKLoginButtonDelegate协议."

我已将FBSDKLoginButtonDelegate添加到我的视图控制器,它具有以下属性:

@property (weak, nonatomic) IBOutlet FBSDKLoginButton *FacebookButton;
Run Code Online (Sandbox Code Playgroud)

和.m(实现)文件具有:

@interface firstVC ()
<FBSDKLoginButtonDelegate>

@end
Run Code Online (Sandbox Code Playgroud)

但问题是FBSDKLoginButtonDelegate没有调用:

- (void)  loginButton:  (FBSDKLoginButton *)loginButton
didCompleteWithResult:  (FBSDKLoginManagerLoginResult *)result
                error:  (NSError *)error{

    NSLog(@"facebook login button test");


}
Run Code Online (Sandbox Code Playgroud)

并且在注销时没有调用:

- (void) loginButtonDidLogOut:(FBSDKLoginButton *)loginButton{
  NSLog(@"facebook logout button test");
}
Run Code Online (Sandbox Code Playgroud)

另外,我在@interface和@end之间的标题中声明了上述方法

Con*_*eer 7

我必须确保按钮的类是FBSDKLoginButton而不是UIButton,我已经完成了:

@property (weak, nonatomic) IBOutlet FBSDKLoginButton *FacebookButton;
Run Code Online (Sandbox Code Playgroud)

一旦我这样做并在问题中实现了前面提到的两个类,那么修复就是在实现文件中的viewDidLoad上将按钮委托设置为self:

[FacebookButton setDelegate:self];
Run Code Online (Sandbox Code Playgroud)