FB SDK は、複数の FBLoginView を作成することを好まないようです。セッションを適切に終了すればできるかもしれませんが、LoginView を一度作成して保持する方が簡単であることがわかりました。
私はこれを次のようにしました:
1).m
モーダルView Controllerファイルで、静的変数を作成しました
static FBLoginView* loginView;
2) my にモーダルビューコントローラーをロードするときviewDidLoad
、代わりに
FBLoginView *loginview = [[FBLoginView alloc] initWithPermissions:
[NSArray arrayWithObject:@"status_update"]];
loginview.frame = CGRectOffset(loginview.frame, 10, 10);
次のように、すでに初期化されているかどうかを確認するチェックを追加しました。
if (!loginView) {
loginView = [[FBLoginView alloc] initWithPermissions:
[NSArray arrayWithObject:@"status_update"]];
loginView.frame = CGRectOffset(loginView.frame, 10, 10);
}
それを超えて、FB の HelloFacebook プロジェクトの例に従っただけです。
きれいなコードではありませんが、うまくいくようです。