在我的应用程序中需要进行身份验证,因此当您启动标签栏上的其中一个选项卡时,如果没有“A类”检查,则会保存凭据,“B类”模式视图控制器,其中包含用于登录启动的字段。
所以我的问题是:应该实现A类中的哪个方法(loadView,viewWillAppear或者可能是另一个方法),检查是否有保存的凭据和上述其他内容。
我的第二个问题是: 正在推动modalviewcontroller正确显示登录屏幕的方式,或者我应该采取不同的方式吗?
感谢你们的回复。
还有一件事。我已经通过添加委托和呈现ModalVC(Harkonian the Piquant的方法)来实现LoginView。但在我的标签栏应用程序中,我有一个非常混乱的问题。我的意思是当用户点击登录按钮(假设一切正确并且他能够保护数据)时,如何正确切换到选项卡哪里是安全信息。我的意思是之前选择的标签。
我是通过添加
来做到的- (IBAction)登录{
//一些代码
self.tabBarController.selectedIndex = 1;
答案 0 :(得分:1)
我的应用程序中有一个非常类似的用例 - 它需要密码才能进行身份验证。经过大量的测试和调整后,我发现以下设计是最好的方法:
出于安全考虑,通常您需要在用户可以查看基础视图之前显示凭据VC。在app委托中处理这个比在VC中容易得多。此外,您需要考虑当您的应用程序背景时会发生什么 - 屏幕截图是应用程序的当前状态。如果您使用viewController A来显示凭据视图,那么当应用重新启动时,用户将能够看到应用程序关闭时可见的任何敏感信息,直到应用程序完成启动并且VC A呈现凭证VC。
UIWindow
。您不希望任何其他视图能够位于凭据视图之上。永远。甚至通常总是位于顶部的视图,例如UIAlertView
。实现此目的的最简单方法是为您的凭据视图设置一个特殊的UIWindow
。显示此窗口并在需要显示凭据视图时隐藏主应用程序窗口。
如果您对此设计的效果感兴趣,可以查看Audiotorium Notes for iPad中的密码功能。我花了很多时间在这个设计上,以确保它尽可能安全。
如果您有任何具体的实施任务,请随时询问,我会尽力回答。