3

应该是我缺少的简单解决方案。我有一个选项卡视图控制器驱动的应用程序,我想在用户启动或打开应用程序时对其进行密码保护。我在 IB 中创建了一个密码类和视图控制器。

我正在尝试将 AppDelegate.m 类 applicationDidLoadInForeground 方法与以下代码一起使用:

- (void)applicationWillEnterForeground:(UIApplication *)application
{
    NSUserDefaults *submissionDefaults = [NSUserDefaults standardUserDefaults];
    if ([submissionDefaults boolForKey:@"passcodeActive"] == true)
    {   
        PINAuthViewController *pinController = [[PINAuthViewController alloc] init];
        [self presentViewController:pinController animated:YES completion:nil];
    }
}

我已经在标题中导入了我的 PINAuthViewController 类

#import "PINAuthViewController.h"

但我在编译“没有可见的@interface for 'AppDelegate' 声明选择器'presentViewController:animated:completion'时收到错误。

谁能告诉我我做错了什么?如果密码输入正确,目的是关闭密码视图控制器。

非常感谢,詹姆斯

4

2 回答 2

12

应用程序委托不能呈现视图控制器,因为它不是 UIViewController 本身的子类。

您需要将代码更改为:

[self.window.rootViewController presentViewController:pinController animated:YES completion:nil];
于 2012-12-15T19:05:28.910 回答
2

你也可以试试这个代码......

self.viewController = [[FirstViewController  alloc] initWithNibName:@"FirstViewController" bundle:nil];
self.window.rootViewController = self.viewController;
[self.window makeKeyAndVisible];
于 2015-10-20T06:50:38.587 回答