我正在尝试构建一个具有 WebView 的应用程序(第一个)。我使用了 Storyboard 并实现了一个完美运行的 WebView。但现在它需要使用 Facebook 进行登录,所以我向 Storyboard添加了一个新 View ,我想根据登录状态加载 Root View 。当我将一个 View 标记为初始 View Controller 时,该应用程序可以正常工作并显示该 View ,但是我如何才能在显示该 View 之前更改它?
我试过这段代码,但它不起作用:
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];
UIViewController *vc =[storyboard instantiateViewControllerWithIdentifier:@"LoginViewController"];
// Set root view controller and make windows visible
self.window.rootViewController = vc;
[self.window makeKeyAndVisible];
我有这个错误:“2012-12-12 16:40:51.219 MoonBooster[15056:c07] 无法实例化 UIMainStoryboardFile 'MainStoryboard' 的默认 View Controller - 也许未设置指定的入口点?”
我不确定 View 的标识符从哪里获取,我正在考虑重新设计应用程序只是为了不使用 Storyboard,因为我没有使用 Nav 或 Tab View Controllers(我们不不需要它)所以我只能使用模态转场。
谢谢你的帮助
最佳答案
View Controller 的标识符在身份检查器中设置——它在身份标题下,称为 StoryboardID。
就您的应用程序结构而言,我看到很多发帖人都在尝试做与您正在做的事情类似的事情,但我认为这不是正确的方法。无论您在应用程序开始时想要什么主视图(不包括初始屏幕或登录屏幕)都应该是 Root View Controller 。如果你想要一个登录屏幕,那么从你的主视图 Controller 的 viewDidAppear 方法中以模态方式呈现它。如果您不想在登录屏幕出现时短暂地看到主视图,请将 animated 设置为 NO。如果登录成功,那么只需关闭登录 Controller ,就可以开始了。如果失败,则通过另一个屏幕或警报通知用户,并且不要关闭登录 Controller 。
关于ios - 如何在没有 Tab 或 Nav Controller 的情况下使用 Storyboard 从 AppDelegate 实例化不同的 View ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13843497/