ios - 如何在没有 Tab 或 Nav Controller 的情况下使用 Storyboard 从 AppDelegate 实例化不同的 View ?

标签 ios controller view storyboard

我正在尝试构建一个具有 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/

相关文章:

ios - UIButton 在 HighLighted 时不会改变图片,只会将图片设置为灰色

iphone - 如何使适用于 iOS 的 Adob​​e AIR 应用程序同时支持新旧屏幕尺寸

用于为嵌套资源创建 Controller 操作的 RSpec 测试

php - 如何防止Symfony 4中出现ParseError?

mysql - 使用 OR 在多列上通过左连接创建 View

java - 循环 View 路径错误,Spring MVC

iOS/xcode : I wasn't given the project file (. xcodeproj),只有源代码。我如何构建项目?

php - Laravel 5.0 - 在基本 Controller 中调用使用?

sql - Postgres : Replace a view that has dependencies

objective-c - NSScanner 无法识别 scanUpToString 上的选择器