以编程方式在委托中调用storyboard

Roc*_*aby 7 xcode objective-c uiviewcontroller ios uistoryboard

我正在尝试以编程方式调用我的故事板.我的故事板包含以下内容:

[导航控制器] - > [MainMenuView] - > [DetailsView]

"MainMenu"标识符放在[MainMenuView]中

我遇到的问题是屏幕显示空白.我需要做什么?

谢谢.

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{       
    UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];

    MainMenuView *rootViewController = [storyboard instantiateViewControllerWithIdentifier:@"MainMenu"];

    return YES
}
Run Code Online (Sandbox Code Playgroud)

sar*_*ata 16

您需要先手动创建窗口,然后在其中添加rootViewController(之前的答案几乎是正确的):

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];

    UIViewController *mainViewController = [storyboard instantiateInitialViewController];

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

    return YES;
}
Run Code Online (Sandbox Code Playgroud)


jon*_*oll 2

您需要设置应用程序窗口的 rootViewController 属性:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{       
    UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];
    MainMenuView *rootViewController = [storyboard instantiateViewControllerWithIdentifier:@"MainMenu"];

    self.window.rootViewController = rootViewController;

    return YES;
}
Run Code Online (Sandbox Code Playgroud)