小编典典

使用 Storyboard 以编程方式设置初始视图控制器

all

如何以编程方式设置InitialViewController情节提要?我想根据某些情况将我的故事板打开到不同的视图,这些情况可能因发布而异。


阅读 45

收藏
2022-05-13

共1个答案

小编典典

如何 没有 一个虚拟的初始视图控制器

确保所有初始视图控制器都有 Storyboard ID。

在情节提要中,取消选中第一个视图控制器中的“是初始视图控制器”属性。

如果您此时运行您的应用程序,您将阅读

无法为 UIMainStoryboardFile ‘MainStoryboard’ 实例化默认视图控制器 - 也许未设置指定的入口点?

您会注意到应用程序委托中的 window 属性现在为零。

在应用程序的设置中,转到您的目标和Info选项卡。有明确的价值Main storyboard file base name。在General选项卡上,清除 的值Main Interface。这将删除警告。

application:didFinishLaunchingWithOptions:在应用委托的方法中创建窗口和所需的初始视图控制器:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    self.window = [[UIWindow alloc] initWithFrame:UIScreen.mainScreen.bounds];

    UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];

    UIViewController *viewController = // determine the initial view controller here and instantiate it with [storyboard instantiateViewControllerWithIdentifier:<storyboard id>];

    self.window.rootViewController = viewController;
    [self.window makeKeyAndVisible];

    return YES;
}
2022-05-13