0

我正在使用下面的代码来检查用户是登录还是注销,并且工作正常。但是因为我按名称获取情节提要,所以我总是将用户发送到 iPhone 的“输入”或“输出”视图控制器。如果我得到活跃的故事板,它会起作用。如何修复代码?

- (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 回答