iphone - 呈现模态视图 Controller 登录屏幕

标签 iphone ios cocoa-touch security authentication

在我的应用程序中需要身份验证,因此当您在选项卡栏上启动其中一个选项卡时,“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/

相关文章:

iphone - NS通知中心: pass Notification between 2 classes

ios - 发送按钮,打开 UIPickerView 到 UIPickerView 的 selectRow 函数

ios - 每次应用重新启动时我都应该调用 setMinimumBackgroundFetchInterval 吗?

php - ID 不是整数... EasyAPNS

ios - 搜索栏在 segue 到新的 ViewController 后不会消失

ios - 从 JSON 创建数据对象时出错

ios - 在 TableView Controller 上添加后退按钮

ios - 在 NSArray 中更新 NSDictionary

iphone - 有关iOS应用升级过程的具体信息

iphone - 循环 MPMoviePlayerController 视频时可能出现线程问题