Невозможно вызвать контроллер просмотра экрана блокировки из AppDelegate

Я реализовал контроллер представления KKLockscreen и хорошо работает с контроллером настроек в приложении. Возможность установить пароль и изменить их, а также.

У меня проблема с вызовом экрана блокировки из appdelegate. Я добавил файл делегата .h и импортировал контроллер представления в файл .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];
        });

    }
}

person Kalaichelvan    schedule 04.03.2013    source источник


Ответы (1)


Я проверил его с помощью своего кода, и он работает, но вы не указали имя пера здесь, в этой строке, и я дал, возможно, поэтому он не отображает ваше представление. KKPasscodeViewController *vc = [[KKPasscodeViewController alloc] initWithNibName:nil bundle: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];
});

}

person Banker Mittal    schedule 04.03.2013
comment
Должен ли я использовать следующим образом? KKPasscodeViewController *vc = [[KKPasscodeViewController alloc] initWithNibName:@KKPasscodeViewController bundle:nil]; но это не работает. Извините. я не так ясно, какое имя пера использовать. - person Kalaichelvan; 04.03.2013
comment
У меня два вопроса: 1) ваш контроллер просмотра не отображается в версии для iPad или версии для iPhone? 2›if ([[KKPasscodeLock sharedLock] isPasscodeRequired]) вернуть true ? а управление идет в коде или нет? - person Banker Mittal; 04.03.2013
comment
1. На iPhone и iPad версия не отображается. 2. Оригинальный KKLockscreen поставляется с демонстрационным приложением и работает хорошо. Я считаю, что управление должно перейти к коду, когда ([[KKPasscodeLock sharedLock] isPasscodeRequired]) вернет true. Я фактически включаю коды из демо-приложения в свое приложение. панели настроек работают отлично. просто он не вызывается из appdelegate. я использую раскадровку. но KKPasscodeViewController состоит из кодов. не реализовано в раскадровке. может в нем проблема? - person Kalaichelvan; 04.03.2013