【问题标题】:How to instantiate and push an (additional) storyboard into my app?如何实例化(附加)故事板并将其推送到我的应用程序中?
【发布时间】:2016-03-03 11:16:10
【问题描述】:

我的应用主要是在没有情节提要的情况下构建的。 但是,我只创建了一个用于用户注册。

这个故事板由一个包含 2 个视图控制器的导航控制器组成。 第一个称为“FirstVC”,一个称为“SecondVC”(这个不会用于我的问题)。

我正在尝试将其推送到 AppDelegate.m 文件中(尝试各种方式,见下文)但我的屏幕始终是黑色的。

尝试 1

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {


    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];

    UIStoryboard *sb = [UIStoryboard storyboardWithName:@"FirstRegistration" bundle:nil];
    FirstVC *fvc = [sb instantiateViewControllerWithIdentifier:@"FirstVC"];
    UINavigationController *navController =(UINavigationController *)self.window.rootViewController;
    [navController pushViewController:fvc animated:YES];
   return YES;

}

尝试 2

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {


    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];

    UIStoryboard *sb = [UIStoryboard storyboardWithName:@"FirstRegistration" bundle:nil];
    FirstVC *fvc = [sb instantiateViewControllerWithIdentifier:@"FirstVC"];
    self.window.rootViewController = fvc;
    return YES;
}

注意:我已在标识符自定义类部分中将 FirstVC 场景设置为 FirstVC,并将情节提要 ID 设置为 FirstVC。但是我还没有接触到 NavigationController 场景,我应该将自定义类设置为 UINavigationController 吗?

【问题讨论】:

  • 您是否在情节提要中设置了标识符“FirstVC”?
  • 感谢您的回答,是的,我有,但是正如我所说(请参阅更新),我不知道如何处理导航控制器场景。
  • 在 navigationVC 中设置该属性并加载该属性而不是 firstVC

标签: ios objective-c storyboard


【解决方案1】:

你可以尝试添加这一行

[self.window makeKeyAndVisible];

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

    UIStoryboard *sb = [UIStoryboard storyboardWithName:@"FirstRegistration" bundle:nil];
    FirstVC *fvc = [sb instantiateViewControllerWithIdentifier:@"FirstVC"];
    self.window.rootViewController = fvc;
    [self.window makeKeyAndVisible]; //**Add this**
    return YES;
}

【讨论】:

  • 非常感谢!我完全忘记添加这一行了!现在可以使用了!
  • 太棒了..继续编码:)
猜你喜欢
  • 1970-01-01
  • 2018-01-25
  • 2013-09-20
  • 1970-01-01
  • 1970-01-01
  • 2013-07-13
  • 1970-01-01
  • 2012-02-20
  • 2012-06-08
相关资源
最近更新 更多