Не удалось вызвать 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];
}];