1

在我的应用程序中,当应用程序进入后台时,我正在调用密码页面(进行身份验证的密码页面)。

我的要求是当用户从前台启动应用程序时,他会看到密码页面。如果他输入了正确的密码,那么只有他才能看到其余页面。

delegate.m 文件中

- (void)applicationDidEnterBackground:(UIApplication *)application
 {
   PasscodeViewController *passcodeController = [[PasscodeViewController alloc]       initWithNibName:@"PasscodeViewController" bundle:nil];

   [navController pushViewController:passcodeController animated:YES];
 }

当我从后台启动应用程序时,它会在几分之一秒内向我显示上一页(从我进入后台的页面),然后在该密码页面出现之后。

但我想对上一页中显示的其他人(不知道密码的人)隐藏我的机密信息。

它在模拟器中正常工作,但在设备中无法正常工作。

你能指导我吗?

或者

这是iOS设备的正常行为吗?无论它会做什么页面转换,它都会在应用程序在前台运行时执行。

我不确定。请告诉我哪里出错了。

谢谢你。

4

5 回答 5

0

每当您的应用程序进入后台时,添加一个UIView白色背景。每当您的应用程序出现时,将您的 PasscodeViewController 视图推到顶部

请为上述功能添加观察者UIApplicationDidEnterBackgroundNotificationUIApplicationWillEnterForegroundNotification确保在您的视图消失时删除观察者

当用户输入正确的密码时,删除UIView.

于 2012-05-10T09:51:12.637 回答
0

试试 applicationWillResignActive:

- (void)applicationWillResignActive:(UIApplication *)application
{
  PasscodeViewController* passcodeController = [[PasscodeViewController alloc] initWithNibName:@"PasscodeViewController" bundle:nil];

  [navController pushViewController:passcodeController animated:YES];
} 
于 2012-05-09T13:29:26.557 回答
0

我认为这是 UIKit 何时认为它需要重新渲染的问题......我们有一个类似的带有闪屏的案例,但applicationDidEnterBackground用于添加闪屏有帮助。

我的想法是避免动画,使用

[navController pushViewController:passcodeController animated:NO];
于 2012-05-09T13:42:06.510 回答
0

当应用程序进入后台时,将密码视图控制器推送到委托 applicationDidEnterBackground 中的导航控制器,因为几乎所有时间都会有部分闪烁,您可以在进入后台之前推送密码控制器。

于 2012-05-10T10:58:00.893 回答
0

我使用过的具有类似功能的每个应用程序都按照您的描述运行,在锁定视图出现之前会出现小数秒闪烁。

于 2012-05-09T13:20:04.293 回答