Al FB SDK no parece gustarle la creación de más de un FBLoginView. Tal vez puedas si finalizas la sesión correctamente, pero me resultó más fácil simplemente crear el LoginView una vez y mantenerlo.
Hice esto de la siguiente manera:
1) en mi .m
modal archivo de controlador de vista, he creado una variable estática
static FBLoginView* loginView;
2) Al cargar el controlador de vista modal en mi viewDidLoad
, en lugar de
FBLoginView *loginview = [[FBLoginView alloc] initWithPermissions:
[NSArray arrayWithObject:@"status_update"]];
loginview.frame = CGRectOffset(loginview.frame, 10, 10);
he añadido un cheque para encontrar si su ya inicializado, como esto:
if (!loginView) {
loginView = [[FBLoginView alloc] initWithPermissions:
[NSArray arrayWithObject:@"status_update"]];
loginView.frame = CGRectOffset(loginView.frame, 10, 10);
}
Más allá de eso, acabo de seguir el ejemplo del proyecto HelloFacebook de FB.
Código no es bonito, pero parece que funciona.
no creo que sea prudente cerrar la sesión cuando descarte el modal ya que puede cerrar la sesión del usuario. Tiene que haber otra solución o tenemos que presentar esto bajo los errores – carbonr