在我的应用程序中需要身份验证,因此当您在选项卡栏上启动其中一个选项卡时,“A 类”检查是否保存了凭据,如果没有,“B 类”模态视图 Controller 和用于登录的字段将启动。
所以我的问题是:应该在 A 类(loadView、viewWillAppear 或其他方法)中的哪个方法中执行检查是否保存了凭据和上述其他内容。
我的第二个问题是: 是插入 modalviewcontroller 显示登录屏幕的正确方式,还是我应该以不同的方式这样做?
谢谢大家的回复。
哦!再多一点
还有一件事。我已经通过添加委托(delegate)和呈现 ModalVC(Harkonian the Piquant 的方法)完成了 LoginView 的实现。但是在我的标签栏应用程序中,我遇到了非常困惑的问题。我的意思是当用户点击登录按钮时(假设一切正确并且他能够保护数据)如何正确切换到安全信息所在的选项卡。我的意思是之前选择的选项卡。
我是通过添加来做到的
-(IBAction) login {
//some code
self.tabBarController.selectedIndex =1;
它似乎运行良好,但它是否正确?
最佳答案
我的应用程序中有一个非常类似的用例——它需要密码才能进行身份验证。经过大量测试和调整后,我发现以下设计是最佳方法:
不要使用 A 类来启动您的凭据 VC——而是使用应用委托(delegate)。
出于安全目的,通常您会希望 VC 在用户查看基础 View 之前显示凭据。在 app delegate 中处理这个比在 VC 中要容易得多。此外,您需要考虑当您的应用程序处于后台运行时会发生什么——截取应用程序当前状态的屏幕截图。如果您使用 viewController A 显示凭据 View ,则当应用程序重新启动时,用户将能够看到在应用程序关闭时可见的任何敏感信息,直到应用程序完成启动并且 VC A 显示凭据 VC。
不要将您的凭据 View 插入现有的 ViewController - 请改用新的 UIWindow
。
您永远不希望任何其他 View 能够位于您的凭据 View 之上。曾经。即使是通常始终位于顶部的 View ,如 UIAlertView
。实现此目的的最简单方法是为您的凭据 View 设置一个特殊的 UIWindow
。每当您需要显示凭据 View 时,显示此窗口并隐藏主应用程序窗口。
这种方法在实践中看起来如何?
如果您对这种设计的效果完全感兴趣,可以查看 Audiotorium Notes for iPad 中的密码功能。我花了很多时间在这个设计上,以确保它尽可能安全。
如果您有任何具体的实现任务,请随时提出,我会尽量回答。
关于iphone - 呈现模态视图 Controller 登录屏幕,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7785502/