0

次のコードを使用して、ユーザーがログインしているかログアウトしているかを確認していますが、正常に機能しています。ただし、ストーリーボードを名前で取得しているため、常にユーザーをiPhoneの「in」または「out」ビューコントローラーに送信しています。アクティブなストーリーボードを入手すればうまくいくでしょう。どうすればコードを修正できますか?

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    BOOL user = ...;
    NSString *segue = user ? @"in" : @"out";
    UIStoryboard *storyBoard = [UIStoryboard storyboardWithName:@"iPhone" bundle:nil];
    UIViewController *viewController = [storyBoard instantiateViewControllerWithIdentifier:segue];
    [self.window setRootViewController:viewController];

    return YES;
}
4

1 に答える 1

1

アプリが iPad と iPhone のどちらで実行されているかに応じて、別のストーリーボードから viewController を取得することだけが目的の場合は、if ステートメントを使用してこれを行うことができます。

NSString *storyboardName;
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {
    storyboardName = @"iPad";
} else {
    storyboardName = @"iPhone";
}
UIStoryboard *storyBoard = [UIStoryboard storyboardWithName:storyboardName bundle:nil];

状況に関係なく「アクティブな」ストーリーボードを本当に取得する必要がある場合は、この以前の回答が役立つ場合があります。

UIStoryboard: アクティブなストーリーボードを取得する正しい方法は何ですか?

于 2012-08-30T20:04:40.297 に答える