1

我正在尝试构建一个具有 webview 的应用程序(第一个)。我使用了 Storyboard,并实现了一个完美运行的 WebView。但是现在它需要使用 Facebook 进行登录,所以我在 Storyboard 中添加了一个新视图,我想根据登录状态加载根视图。当我将视图标记为初始视图控制器时,应用程序可以工作并显示该视图,但是,我怎么能在显示视图之前更改它呢?

我已经尝试过这段代码,但它不起作用:

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 的标识符来自哪里,我正在考虑重新设计应用程序,只是不使用 Storyboard 也不是 segues,因为我没有使用 Nav 或 Tab View Controllers(我们不需要它) 所以我只能使用模态序列。

谢谢您的帮助

4

1 回答 1

1

视图控制器的标识符在身份检查器中设置——它在身份标题下,称为 StoryboardID。

就您的应用程序结构而言,我看到很多海报试图做与您正在做的事情类似的事情,我认为这不是正确的方法。在应用程序开始时您想要的任何主视图(不包括启动屏幕或登录屏幕)都应该是根视图控制器。如果你想要一个登录屏幕,那么从你的主视图控制器的 viewDidAppear 方法中以模态方式呈现它。如果您不想在登录屏幕出现时简要查看主视图,则将动画设置为 NO。如果登录成功,那么只需关闭登录控制器,您就可以开始了。如果失败,则通过另一个屏幕或警报通知用户,并且不要关闭登录控制器。

于 2012-12-12T17:14:43.203 回答