Не удалось вызвать UITabview из NSNotificationCenter в IOS

Мне удалось внедрить нижеупомянутую библиотеку в моем проекте. Используемая библиотека:: https://github.com/rolandleth/LTHPasscodeViewController

После ввода пин-кода и после проверки его правильности я не могу сразу переключиться на панель вкладок после ввода пин-кода, но если я использую NSNotification между ними, я могу передать управление.

Мой код:

 - (void) receiveTestNotification:(NSNotification *) notification
{
    if ([[notification name] isEqualToString:@"TestNotification"])
        NSLog (@"Successfully received the test notification!");   
    UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
    mainTabViewController *objSec=[storyboard instantiateViewControllerWithIdentifier:@"passID"];
    [self.navigationController pushViewController:objSec animated:YES];

После установки NSLog я также получаю вывод журнала, но вкладка не появляется.

Есть ли способ вызвать вкладку сразу после ввода пин-кода.

[[NSNotificationCenter defaultCenter] addObserver:self
                                             selector:@selector(receiveTestNotification:)
                                                 name:@"TestNotification"
                                               object:nil];

Tabview сделано с использованием StoryBoard.

1 ответ

Решение

Я думаю, что это происходит потому, что метод обратного вызова из этой библиотеки выполняется в фоновом потоке, попробуйте обернуть ваш код с диспетчеризацией в основном потоке, это должно помочь:

dispatch_async(dispatch_get_main_queue(), ^{
    UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
    mainTabViewController *objSec=[storyboard instantiateViewControllerWithIdentifier:@"passID"];
    [self.navigationController pushViewController:objSec animated:YES];
}];
Другие вопросы по тегам