如何在iOS中将FBlogin的不同委托分配给两个不同的视图控制器
我有两个视图控制器,一个使用如何在iOS中将FBlogin的不同委托分配给两个不同的视图控制器,ios,objective-c,facebook,delegates,facebook-ios-sdk,Ios,Objective C,Facebook,Delegates,Facebook Ios Sdk,我有两个视图控制器,一个使用FBLoginView及其委托,它们在同一个类中处理。但是,我有另一个viewcontroller,它使用自定义按钮启动FBLogin,因此我无法将委托分配给此类。当FBLogin成功时,会在第一视图控制器中进行委托调用。我想为second view controller单独处理事件。例如:第一个视图控制器是具有FBLogin默认视图的登录,第二个视图控制器是具有自定义按钮的注册,并实现FBSession方法,以便登录Facebook应用程序或safari移动网站。如
FBLoginView
及其委托,它们在同一个类中处理。但是,我有另一个viewcontroller
,它使用自定义按钮启动FBLogin
,因此我无法将委托分配给此类。当FBLogin
成功时,会在第一视图控制器中进行委托调用。我想为second view controller单独处理事件。例如:第一个视图控制器是具有FBLogin
默认视图的登录,第二个视图控制器是具有自定义按钮的注册,并实现FBSession
方法,以便登录Facebook应用程序或safari移动网站。如何实现在注册页面中单独调用的login-delegates方法,以便对该页面进行精细的视图处理
注册页面按钮操作中的代码为:
// If the session state is any of the two "open" states when the button is clicked
if (FBSession.activeSession.state == FBSessionStateOpen
|| FBSession.activeSession.state == FBSessionStateOpenTokenExtended) {
// Close the session and remove the access token from the cache
// The session state handler (in the app delegate) will be called automatically
[FBSession.activeSession closeAndClearTokenInformation];
// If the session state is not any of the two "open" states when the button is clicked
} else {
// Open a session showing the user the login UI
// You must ALWAYS ask for public_profile permissions when opening a session
[FBSession openActiveSessionWithReadPermissions:@[@"public_profile",@"email"]
allowLoginUI:YES
completionHandler:
^(FBSession *session, FBSessionState state, NSError *error) {
}
这里的allowLoginUI
设置为YES
,这样它就可以重定向到Facebook的登录
对于登录页面,代码为:
self.loginButton.delegate = self;
self.loginButton.readPermissions = @[@"public_profile", @"email"];
因此,即使我从注册中调用按钮操作,也会在登录页面中调用这些代理
-(void)loginViewFetchedUserInfo:(FBLoginView *)loginView user:(id<FBGraphUser>)user{
}
-(void)loginView蚀刻教育信息:(FBLoginView*)loginView用户:(id)用户{
}
r您在登录和注册页面中尝试Facebook登录显示您的登录页面和注册页面编码,在问题中添加代码。编辑问题。自定义内容,无需使用注册页面na中的自定义按钮登录ViewFetchedUserInfo bz u r,如果是,请使用此链接