2014-02-19 85 views
1
#import "whoViewController.h" 

@interface whoViewController() 

@property (nonatomic,strong) IBOutlet FBProfilePictureView *profilePictureView; 
@property (nonatomic,strong) IBOutlet UILabel *nameLabel; 
@property (nonatomic,strong) IBOutlet UILabel *statusLabel; 

@end 

上面应该将标签添加到视图中。Facebook登录集成,以编程方式添加UILabel不起作用

@implementation whoViewController 


- (void)viewDidLoad 
{ 
[super viewDidLoad]; 
// Do any additional setup after loading the view, typically from a nib. 
FBLoginView *loginView = [[FBLoginView alloc] init]; 
loginView.readPermissions = @[@"basic_info", @"email", @"user_likes"]; 
loginView.center = self.view.center; 
loginView.delegate = self; 
[self.view addSubview:loginView]; 
} 

- (void)didReceiveMemoryWarning 
{ 
[super didReceiveMemoryWarning]; 
// Dispose of any resources that can be recreated. 
} 

// This method will be called when the user information has been fetched 
- (void)loginViewFetchedUserInfo:(FBLoginView *)loginView 
         user:(id<FBGraphUser>)user { 
self.profilePictureView.profileID = user.id; 
self.nameLabel.text = user.name; 
} 

// Implement the loginViewShowingLoggedInUser: delegate method to modify your app's UI for a 
    logged-in user experience 
- (void)loginViewShowingLoggedInUser:(FBLoginView *)loginView { 
self.statusLabel.text = @"You're logged in as"; 
} 

// Implement the loginViewShowingLoggedOutUser: delegate method to modify your app's UI for a 
logged-out user experience 
- (void)loginViewShowingLoggedOutUser:(FBLoginView *)loginView { 
self.profilePictureView.profileID = nil; 
self.nameLabel.text = @""; 
self.statusLabel.text= @"You're not logged in!"; 
} 
@end 

我实现了上面的,因为它在Facebook的教程说,但由于某种原因标签不出现,为什么这可能是任何帮助吗? 实际的登录和登出工作,但标签中的文本标签和更改不起作用。

从以往的经验来看,它应该工作,因为逻辑看起来不错。

+0

你在厦门国际银行/故事板添加这些标签?他们连接吗?委托方法是否被调用?你订阅了委托协议吗? –

+0

您可能忘了将这些标签从.storyboard /拖到您的视图控制器中。xib文件并将它们连接到IBOutlets – Daniel

+0

Facebook的iOS开发站点上的教程,它说这些标签应该以编程方式工作,并且不需要将它们连接到故事板。与添加但在故事板上不可见的登录视图一样。 –

回答

0

要整合Facebook SDK你需要下面遵循以下5个步骤,如果您有任何疑问,采取在Github上FbLoginIntegrationSample一看,审查Facebook开发(以下引用)入门部分:

1-下载并安装Facebook的SDK

2-获取Facebook应用ID(在Facebook登录和在App仪表盘创建一个新的应用程序)

3-配置你的Xcode项目

  • 导入FacebookSDK.framework到项目
  • 配置的.plist文件(添加FacebookAppID和FacebookDisplayName)

5-开始编码!

  • 导入FacebookSDK.framework到项目
  • 参考FBLoginViewDelegate到主视图类(可能whoViewController.h)
  • 链接nameLabel,statusLabel和profilePictureView向本刊记者标签(profilePictureView必须链接到一个UIView对象)
  • 配置的.plist文件(添加FacebookAppID和FacebookDisplayName)

还有一个提示:

1-记得设置一个LoginView帧的尺寸和位置:

loginView.frame = CGRectOffset(loginView.frame,(self.view.center.x - (loginView.frame.size.width/2)) ,5);

参考文献:

示例项目

https://github.com/carantes/FbLoginIntegrationSample

配置:

https://developers.facebook.com/docs/ios/login-tutorial

+0

我一直按照教程,我只是卡在最后的部分,它显示个人资料图片等..登录的人。 –

+0

请检阅教程,并确保您参考视图控制器上的代表 - > LoginUIViewController:UIViewController 和AppDelegate中的[FBLoginView类] didFinishLaunchingWithOptions函数 – carantes

+0

您可以提供任何调试信息,也许您可​​以添加一些输出字符串(NSLog)loginViewFetchedUserInfo只是为了确保函数调用 – carantes

相关问题