使用 applicationwillenterforeground 显示密码屏幕

2024-03-10

在 iOS4 之前,我的应用程序的初始视图控制器将检查 viewWillAppear 中的密码开/关设置变量,如果设置为打开,则显示一个模式密码屏幕,该屏幕将一直保留在那里,直到输入正确的密码或按下主页按钮。

对于 iOS4,如果我的应用程序一直在后台运行,我希望用户感到放心,因为如果他们将手机交给某人使用,则应用程序中包含的数据将无法轻松访问。

由于应用程序可以返回到任何屏幕(应用程序上次所在的屏幕),因此我想我应该在整个地方使用 UIApplicationWillEnterForegroundNotification 和本地选择器(重复的 EnterPasscode 方法),每个选择器都有正确的视图控制器来根据本地屏幕,但必须有更好的方法。

我在这里可能有一个轻微的概念误解。有人可以建议另一种方法或推动我进行下一步吗?我可以将其作为共享方法,但仍然知道要推送的正确本地视图控制器吗?

Thanks

编辑/更新:

简短版本:它有效,但可能还有更好的方法(感谢任何帮助)...

我使用视图控制器创建了一个标准单例。

PasscodeView.h 包含:

UIViewController *viewController;
@property (nonatomic, retain) UIViewController *viewController;

PasscodeView.m 包含:

@synthesize viewController;

我把它放在 AppDelegate 中:

-(void)applicationWillEnterForeground:(UIApplication*)application {

    PasscodeView *passcodeView = [PasscodeView sharedDataManager];
    UIViewController *currentController =  [passcodeView viewController];
    NSLog(@"%@", currentController);  //testing
    EnterPasscode *passcodeInput = [[EnterPasscode alloc] initWithNibName:@"Passcode" bundle:nil];
    [currentController presentModalViewController:passcodeInput animated:NO];
    [passcodeInput release];
}

以及我所有 viewDidLoad 中的以下内容,在进入每个屏幕时更新当前视图控制器(只有 2 行,但似乎仍然有更好的方法):

PasscodeView *passcodeView = [PasscodeView sharedSingleton];
passcodeView.viewController = [[self navigationController] visibleViewController];

我希望有一种方法可以从 applicationWillEnterForeground 获取当前视图控制器,但我找不到它 - 仍然感谢这里的任何帮助。

为了保持一致性,我更改了一行并添加了一行以获得导航栏以匹配应用程序的其余部分并包含标题。

UINavigationController *passcodeNavigationController = [[UINavigationController alloc] initWithRootViewController:passcodeInput];
[currentController presentModalViewController: passcodeNavigationController animated:NO];

您可以通过实施将这种行为集中在您的应用程序委托中

-(void)applicationWillEnterForeground:(UIApplication*)application;

您可以实现一个存储当前适当的模态视图控制器的单例,并在每个视图控制器的 viewWillAppear 中更新它。

Edit:我假设您已经有一系列想要显示的视图控制器。我怀疑你真的需要它。如果您调用了 PasscodeInputController,那么您的 applicationWillEnterForeground 将类似于:

-(void)applicationWillEnterForeground:(UIApplication*)application {
    UIViewController *currentController =  [window rootViewController];
    PasscodeInputController *passcodeInput = [[PasscodeInputController alloc] init];

    [currentController presentModalViewController:passcodeInput animated:NO];
    [passcodeInput release];
}

我希望这能更直接地解决你的问题。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 applicationwillenterforeground 显示密码屏幕 的相关文章

  • 已加载 nib 文件但未设置视图出口

    我不小心删除了universityPicker xib 然后用相同的名称创建了一个新的 但无法连接 文件崩溃并给出此消息 reason UIViewController loadViewFromNibNamed bundle loaded
  • 更改 NSManagedObject 属性而不触发委托方法?

    有什么方法 或技巧 可以修改NSManagedObject目前由一名代表持有NSFetchedResultsController不触发didChangeObject and controllerWillChangeContent 委托方法
  • 应用程序未运行时处理推送通知

    当我的应用程序是not运行并收到推送通知 如果我单击该通知 应用程序将启动 但随后它不会提示用户我设置的警报视图 询问他们是否要查看通知的内容 它刚刚启动 就坐在那里 推送通知确实有效完美当应用程序is正在运行 无论是作为活动应用程序还是在
  • 如果按下子视图的按钮如何取消 UIGestureRecognizer

    我正在努力从手势识别器中获得我想要的行为 特别是在其他手势已触发时取消某些手势 我有一个滚动视图设置为分页和每个页面中的多个子视图 我添加了一个触摸手势识别器 如果用户点击页面的右侧或左侧 则可以滚动到下一页或上一页 Add a gestu
  • iphone XMPP 应用程序运行后台

    我使用 XMPP 框架创建了一个聊天应用程序 当我退出应用程序 进入后台模式 时 我想接收聊天消息 并且还需要显示图标徽章 我该怎么做 您确实可以通过将基于 XMPP 框架的应用程序称为 VoIP 应用程序来在 iOS4 中的后台运行该应用
  • iPhone:AVAudioPlayer 不支持的文件类型

    我的应用程序从我们的服务器下载 mp3 并将其播放给用户 该文件为 64 kbps 如果我理解正确的话 这完全在 iPhone 的可接受范围内 我在几十个网站上查找了如何执行此操作 他们都建议我这样做 NSData data NSData
  • VoiceOver 的 UISlider 可访问性特征?

    使 UISlider 在启用 VoiceOver 的情况下可用所需的正确 UIAccessibility 特征和处理程序是什么 是否有关于用户如何使用启用 VoiceOver 的 UISlider 的描述 以下是我最终添加到 UISlide
  • 是否可以仅使用密码进行身份验证,即使设备在 ios、swift 中具有 touch id 功能

    我要认证only使用PassCode甚至设备有Touch ID特征 我在用着 deviceOwnerAuthentication评估政策方法 当我使用这个时 如果用户已注册触摸 ID gt 始终要求提供触摸 ID 如果用户尚未注册 touc
  • 如何从 NSOperationQueue 中删除/取消 NSInitationOperation?

    以下两个问题都是在维护 NSOperationQueue 和 NSInvocableOperation 的上下文中提出的 由于我已经使用这个概念来下载多个视频 因此在下载视频完成后 如何从 NSOperationQueue 中删除 释放添加
  • 如何以编程方式在导航栏中设置图片?

    我有一个带有导航栏的详细视图 其中带有后退按钮和视图名称 导航栏以编程方式设置 呈现的名称是这样设置的 self title NSLocalizedString name 该名称取决于所呈现的视图 现在我还想在导航栏上显示一个小图标 这也取
  • iPhone NSDateFormatter 时区转换

    我正在尝试创建一个格式化程序 将显示的日期格式转换为 NSDate 对象 NSString dateStr 2010 06 21T19 00 00 05 00 NSDateFormatter dateFormat NSDateFormatt
  • Xcode 4 自动完成错误

    您是否还面临 Xcode 4 自动完成功能的问题 该功能过去在 3 x x 版本上运行良好 我已经在 Prefix 中导入了一些类 但 Xcode 不想帮助我输入代码 我必须手动添加上面的 implementation 导入 myclass
  • UISlider最大值调整

    我有三个滑块 这些显示了我需要的不同元素的百分比 所有元素的最大值是 100 a b c 100 现在这些都相互依赖并有助于制作饼图 目前都可以设置为最大值 100 如何从逻辑上使这种依赖性和最大值成为可能 提前致谢 在处理滑块更改的方法中
  • 如何在iPhone上绘制“对话气泡”?

    当您右键单击扩展坞中的某个内容时 我试图获得类似于 Mac OS X 中的 语音气泡 效果 这是我现在所拥有的 我需要得到下部的 三角形 部分 有什么办法可以画出这样的东西并在它周围加上边框吗 这将是为了iPhone app 提前致谢 ED
  • 连续调用startRecordingToOutputFileURL:

    苹果文档 https web archive org web 20140814091047 http developer apple com library ios DOCUMENTATION AVFoundation Reference
  • 如何在核心数据中应用group by子句

    我正在实现 tableview 我想在 tableview 部分显示类名 并且我正在尝试获取 使用核心数据实现的数据库中的类值 我想使用类名上的 group by 子句获取数据 这是我的代码 AppDelegate appDelegate
  • Windows 下 iOS 开发的替代方案 [重复]

    这个问题在这里已经有答案了 可能的重复 如何使用 Windows 开发机为 iPhone 进行开发 https stackoverflow com questions 22358 how can i develop for iphone u
  • 使用 Javascript 获取 Mobile Safari 中选定的文本

    因此 我正在开发一个小书签 对于我来说 使用 循环 获取用户选择的内容是理想的选择 window getSelection 和 document getSelection 都是我可以调用的函数 但是它们始终返回空字符串 我相信问题在于 当您
  • ios7 绘图时出现延迟

    我有一个应用程序 在其中我正在视图上绘制一些草图 到目前为止 在我安装之前它运行良好ios7 我的应用程序使用触摸移动方法来识别运动的变化 但是当我画一条线时 触摸方法被调用 但线不会更新 直到我触摸结束ios7 所以画起来有一点点滞后 它
  • Coredata错误setObjectForKey:对象不能为nil

    我正在尝试检查我的核心数据存储中是否有任何数据作为我的应用程序的恢复类型 基本上 如果用户处于最终视图 则 coredata 中会有一些数据不断更新 因此 他们处于最终视图中 然后应用程序崩溃 或者他们将其置于睡眠状态 然后应用程序从内存中

随机推荐

  • 为什么从搅拌机导出到 Unity 时我的 (FBX) 网格体有孔?

    我现在正在学习雕刻我的角色 当我将 FBX 文件从 Blender 导出到 Unity 时 网格物体的脸上有一个巨大的洞 我该如何预防 解决这个问题 它在 mixamo 中工作得很好 在此输入图像描述 https i stack imgur
  • C++11 中字符串文字的 Unicode 编码

    继一个相关问题 https stackoverflow com questions 6794590 how does file encoding affect c11 string literals 我想问一下C 11中新的字符和字符串文字
  • NUnit 插件与 Resharper 5

    最新的 Resharper v5 版本基于本机 NUnit 代码并允许 NUnit 插件 我有一个 NUnit 插件 可以在 NUnit GUI 中正常工作 但无法使其与 Resharper 一起工作 根据 R 指示 我已将插件库放入 Re
  • 如何使用 PHP/MySQLi 将 NULL 放入 MySQL 整数列?

    我通过 URL 将值传递到 PHP 页面 并在 MySQLi 查询中使用它们 问题在于 对于整数列 空字符串会转换为零 而实际上它需要为 NULL 如何使用 PHP MySQLi 从 URL 中传递的参数获取 NULL 到整数列中 更新 下
  • 不推荐在 build.gradle 中“启用”Android 数据绑定

    in build gradle file dataBinding enabled true enabled已弃用 找不到任何有关它的文档 任何人有任何想法如何解决它 尝试将其替换为 buildFeatures dataBinding tru
  • 获取多个 Pandas DataFrame 的平均值

    我正在生成许多具有相同形状的数据框 并且我想将它们相互比较 我希望能够获得数据帧的平均值和中位数 Source 0 Source 1 Source 2 Source 3 cluster 0 0 001182 0 184535 0 81423
  • 无法让 SendInput() 工作

    我有点绝望了我已经尝试了几个小时了 但就是无法得到SendInput 上班 说实话 我什至无法得到它的认可 它总是说 Error 1 The type or namespace name INPUT could not be found a
  • 如何将页面分为三个垂直部分?

    我想将我的网页转换为四个部分 一横三竖 水平截面还可以 但是垂直截面有两个问题 它们没有填满整个屏幕高度 第三部分与第二部分重叠近10或20个像素 这是我的CSS body width available height available
  • Maven 3 密码加密是如何工作的?

    我正在尝试了解 Maven 3 的 密码加密功能 我发现这个功能的文档记录很少并且令人困惑 例如 功能文档 https maven apache org guides mini guide encryption html and 该功能作者
  • Android getX/getY 交错相对/绝对坐标

    有很多关于 MotionEvent getX getY 如何 不可靠 或其他术语 的讨论 以及我们应该使用这些调用的原始版本来获取坐标 在我的 Nexus 7 上 我发现 getX getY 可靠地返回交错的绝对和相对坐标 换句话说 假设给
  • 获取 AccessibilityNodeInfo 视图以创建叠加层

    我正在写一个AccessibilityService我想在无障碍服务可以检索的当前活动的视图上创建视图覆盖 我可以毫无问题地检索所有内容AccessibilityNodeInfo当前活动中的对象 但我不知道如何从这些对象获取视图来创建叠加层
  • Filesystemwatcher 导致“目录 C:\ 中一次发生太多更改错误”

    像其他一些人一样 当文件系统观察程序执行其工作时 我收到错误 目录 C 中一次错误太多更改 现在如果是c 显然有很多变化 但在这种特殊情况下 我设置了以下参数 Path C Filter test1 txt NotifyFilter Not
  • 检查内容是否溢出

    我需要知道我的内容何时溢出我的 div 如果是这样 我将放置一个链接 以便在新窗口中打开包含所有内容的页面 Cheers DalexL 使用 jQuery 和文本溢出时的选取框文本 https stackoverflow com quest
  • 如何控制RDD分区的首选位置?

    有没有办法手动设置RDD分区的首选位置 我想确保在特定机器上计算特定分区 我使用数组和 Parallelize 方法从中创建 RDD 另外我没有使用 HDFS 文件位于本地磁盘上 这就是为什么我要修改执行节点 有没有办法手动设置RDD分区的
  • 为 Monotouch 对话框元素设置自定义字体

    有没有办法在实例化 Monotouch Dialog 类时设置字体 Section This is the header 这将使用带阴影的默认蓝色文本进行渲染 但我找不到设置该字体的位置 有没有办法覆盖它使用的字体和颜色 我为那些希望替换整
  • 如何复制范围并仅将包含值的行粘贴到另一个工作表中?

    首先我要说的是 我意识到简单的解决方案是过滤列 取消选中空白 将值复制并粘贴到新列中 问题在于 对于不 精通技术 的教师来说 没有什么是简单的 话虽如此 我正在将同一个谷歌电子表格中的多个工作表中的数据提取到 主 工作表中 我有一个名为 可
  • Autotools 库和目标文件输出控制

    我的目标是将所有目标文件构建在 objs 目录中而不是 Makefile 的根目录中 并将二进制文件 和库 复制到项目的bin 目录 但我一直无法找到任何资源来解释如何做到这一点 我该怎么做呢 这是我的configure ac和src Ma
  • Java JCE 无限强度加密安全策略文件

    JRE 更新后 JCE 策略文件 位于 java home lib security 中 是否会被标准强度策略文件覆盖 或者这些在 JRE 更新中是否保留 编辑 有谁知道 Mac OS X JRE 是否附带无限的策略文件 Thanks Jo
  • 如何在 React Native 中测量我的应用程序的数据使用情况?

    我有一个反应本机应用程序 我想测量每个用户的数据使用情况并收集它们以供以后优化 我看到原生 android 的旧问题表明 trafficStats 可能会通过 UUID 提供统计信息 React Native 有哪些可能性 使用react
  • 使用 applicationwillenterforeground 显示密码屏幕

    在 iOS4 之前 我的应用程序的初始视图控制器将检查 viewWillAppear 中的密码开 关设置变量 如果设置为打开 则显示一个模式密码屏幕 该屏幕将一直保留在那里 直到输入正确的密码或按下主页按钮 对于 iOS4 如果我的应用程序