1

ビューコントローラーを実装し、KKLockscreenアプリ内設定コントローラー内でうまく機能しています。パスコードを設定して変更することもできます。

appdelegate からロック画面ビューを呼び出すのに問題があります。デリゲート .h ファイルを追加し、View Controller を .m ファイルにインポートしました。まだロック画面を呼び出していません。助けはありますか?

以下は私のコードです。

- (void)applicationDidBecomeActive:(UIApplication *)application
{
    if ([[KKPasscodeLock sharedLock] isPasscodeRequired]) {
        KKPasscodeViewController *vc = [[KKPasscodeViewController alloc] initWithNibName:nil bundle:nil];
        vc.mode = KKPasscodeModeEnter;
        vc.delegate = self;

        dispatch_async(dispatch_get_main_queue(),^ {
            UINavigationController *nav = [[UINavigationController alloc] initWithRootViewController:vc];

            if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {
                nav.modalPresentationStyle = UIModalPresentationFormSheet;
                nav.navigationBar.barStyle = UIBarStyleBlack;
                nav.navigationBar.opaque = NO;
            } else {
                nav.navigationBar.tintColor = _navigationController.navigationBar.tintColor;
                nav.navigationBar.translucent = _navigationController.navigationBar.translucent;
                nav.navigationBar.opaque = _navigationController.navigationBar.opaque;
                nav.navigationBar.barStyle = _navigationController.navigationBar.barStyle;
            }

            [_navigationController presentModalViewController:nav animated:NO];
        });

    }
}
4

1 に答える 1

0

コードで確認しましたが、動作していますが、この行で nib 名を指定していないため、ビューが表示されない可能性があります。KKPasscodeViewController *vc = [[KKPasscodeViewController 割り当て] initWithNibName:nil バンドル:nil]

-(void)applicationDidBecomeActive:(UIApplication *)application {
RootViewController *vc = [[RootViewController alloc] initWithNibName:@"RootViewController" bundle:nil];

dispatch_async(dispatch_get_main_queue(),^ {
    UINavigationController *nav = [[UINavigationController alloc] initWithRootViewController:vc];

    if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {
        nav.modalPresentationStyle = UIModalPresentationFormSheet;
        nav.navigationBar.barStyle = UIBarStyleBlack;
        nav.navigationBar.opaque = NO;
    } else {
        nav.navigationBar.tintColor = navigationController.navigationBar.tintColor;
        nav.navigationBar.translucent = navigationController.navigationBar.translucent;
        nav.navigationBar.opaque = navigationController.navigationBar.opaque;
        nav.navigationBar.barStyle = navigationController.navigationBar.barStyle;
    }

    [navigationController presentModalViewController:nav animated:NO];
});

}

于 2013-03-04T06:02:35.297 に答える