ユーザーがログインしていない場合はログインフローをトリガーする、またはログインしていない場合は特定のビューコントローラーをプルアップする「プロファイル」というタイトルの tabBarController を作成したいと思います。似たようなものを必要としていないのは、世界で私だけではありません。以下のようなものを試してみました。
@implementation ProtectedViewController
//...
- (void)viewDidLoad
{
[super viewDidLoad];
if (FBSession.activeSession.state == FBSessionStateCreatedTokenLoaded) {
[self presentViewController: self.targetViewController animated: NO completion: nil];
} else {
AppDelegate* appDelegate = [[UIApplication sharedApplication] delegate];
[appDelegate showLoginView];
}
}
+ (ProtectedViewController*)protectedControllerFor:(UIViewController*)viewController
{
ProtectedViewController* protectedViewController = [[ProtectedViewController alloc] initWithNibName: nil bundle: nil];
protectedViewController.targetViewController = viewController;
return protectedViewController;
}
//...
someTabBarController.viewControllers = [feedViewController, [ProtectedViewController protectedControllerFor: newPostController];
これはぎこちなく感じます (実際にはまだ機能していません)。これは通常どのように行われますか?