我遵循this question的建议,以便在运行时定义我的初始视图控制器,而不是总是基于Storyboard属性相同。
这是我的didFinishLaunching
方法:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
UIStoryboard *mainStoryboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
UINavigationController *compactNavigationController = [mainStoryboard instantiateViewControllerWithIdentifier:@"CompactNavigationController"];
self.window.rootViewController = compactNavigationController;
[self.window makeKeyAndVisible];
CompactPostsViewController *controller = (CompactPostsViewController *)compactNavigationController.topViewController;
controller.managedObjectContext = self.managedObjectContext;
return YES;
}
我已经取消选中"是初始视图控制器"在我的故事板中,我已经删除了" Main"来自我应用的信息中的默认故事板。
但是当我启动应用程序时,我会看到一个完全黑屏。我做错了什么?
答案 0 :(得分:1)
您的窗口是零,因为您从未创建它。你需要添加这一行,
self.window = [[UIWindow alloc] initWithFrame:UIScreen.mainScreen.bounds];
当您在info.plist中有“主要故事板基本名称”条目时,会为您创建窗口,但是如果删除它,则必须自己创建窗口。
答案 1 :(得分:0)
检查故事板中的链接(右键单击tableview控制器)。这种情况主要发生在你没有正确链接你的tableview控制器时。