所以我想在TabBarController之前加入一个Facebook登录界面。到目前为止我所拥有的是一个视图控制器,它首先显示一个"登录Facebook"按钮。点击后,它会将您带到设备上的应用程序或facebook.com。您输入信息,单击登录,然后它会返回到我现在显示的用户配置文件图片,名称,电子邮件和注销按钮的同一视图控制器。我想要发生的事情是,一旦你点击通过Facebook应用程序或网站登录,它就会带你到另一个视图控制器,在我的例子中,一个TabBarController。按照简单的步骤:
当前设置的方式是"按钮"是一个UIView控制器,其中包含从Facebook SDK中提取的 FBLoginView 的自定义类。我只需要这个"按钮"输入登录信息并单击登录后,转到我的TabBarController。
仅供参考:我使用的代码是Facebook在使用其教程向应用添加Facebook登录时为您提供的设置。下面是我的LoginViewControoler.m
#import "LoginViewController.h"
@interface LoginViewController ()
@end
@implementation LoginViewController
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view.
self.loginButton.delegate = self;
[self toggleHiddenState:YES];
self.lblLoginStatus.text = @"";
self.loginButton.readPermissions = @[@"public_profile", @"email", @"user_friends"];
}
-(void)loginViewShowingLoggedInUser:(FBLoginView *)loginView{
self.lblLoginStatus.text = @"You are logged in.";
[self toggleHiddenState:NO];
}
-(void)loginViewFetchedUserInfo:(FBLoginView *)loginView user:(id<FBGraphUser>)user{
NSLog(@"%@", user);
self.profilePicture.profileID = user.objectID;
self.lblUsername.text = user.name;
self.lblEmail.text = [user objectForKey:@"email"];
}
-(void)loginViewShowingLoggedOutUser:(FBLoginView *)loginView{
self.lblLoginStatus.text = @"";
[self toggleHiddenState:YES];
}
-(void)loginView:(FBLoginView *)loginView handleError:(NSError *)error{
NSLog(@"%@", [error localizedDescription]);
}
-(void)toggleHiddenState:(BOOL)shouldHide{
self.lblUsername.hidden = shouldHide;
self.lblEmail.hidden = shouldHide;
self.profilePicture.hidden = shouldHide;
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
/*
#pragma mark - Navigation
// In a storyboard-based application, you will often want to do a little preparation before navigation
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
// Get the new view controller using [segue destinationViewController].
// Pass the selected object to the new view controller.
}
*/
@end
答案 0 :(得分:0)
我知道这样做的方法是将登录按钮放在模态View Controller上,该控制器在启动时显示(在初始视图控制器的viewDidLoad中)。然后,它会在成功登录尝试结束时或使用解除按钮时自行解除。