FBFriendPickerViewController периодически загружает пустой tableview
Я использую FBFriendPickerViewController для загрузки друзей после того, как пользователь войдет в систему. Однако загружается пустое табличное представление. Друзья пользователя из fb не появляются. Вот код.
- (IBAction)inviteButtonTouchHandler:(id)sender {
if (!_friendPickerController) {
_friendPickerController = [[FBFriendPickerViewController alloc] initWithNibName:nil bundle:nil];
_friendPickerController.delegate = self;
_friendPickerController.title = @"Select friends";
_friendPickerController.allowsMultipleSelection = NO;
}
[_friendPickerController clearSelection];
[_friendPickerController loadData];
[self presentViewController:_friendPickerController animated:YES completion:nil];
}
Этот код вызывается после входа в систему, что делается так в appDelegate после учебника Facebook -
- (void)openSession
{
NSArray *permissions = @[@"friends_about_me"];
[FBSession openActiveSessionWithReadPermissions:permissions
allowLoginUI:YES
completionHandler:
^(FBSession *session,
FBSessionState state, NSError *error) {
[self sessionStateChanged:session state:state error:error];
}];
}
1 ответ:
Вам необходимо добавить следующий код в метод viewDidLoad вашего viewController.
if (!FBSession.activeSession.isOpen) { // if the session is closed, then we open it here, and establish a handler for state changes [FBSession.activeSession openWithCompletionHandler:^(FBSession *session, FBSessionState state, NSError *error) { switch (state) { case FBSessionStateClosedLoginFailed: { UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"Error" message:error.localizedDescription delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil]; [alertView show]; } break; default: break; } }]; }