У меня есть простое приложение с двумя представлениями. Как только загружается первое представление, я выполняю аутентификацию сенсора Touch ID (см. также этот вопрос):
func testTouchID()
{
if touchIDContext.canEvaluatePolicy(LAPolicy.DeviceOwnerAuthenticationWithBiometrics, error:&touchIDError)
{
touchIDContext.evaluatePolicy(LAPolicy.DeviceOwnerAuthenticationWithBiometrics, localizedReason: reasonString, reply: {
(success: Bool, error: NSError?) -> Void in
if success
{
self.performSegueWithIdentifier("showSecondView", sender: self)
return;
} else {
С помощью этого кода выполняется переход, но на мгновение появляется второе представление, а затем приложение возвращается к первому представлению. Похоже, что код внутри canEvalutePolicy не закончен, поэтому контроллер навигации выдвигает первое представление.
Я пробовал несколько вещей, таких как:
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0)) {
NSOperationQueue.mainQueue().addOperationWithBlock
А также комбинации этих методов, но я не могу выполнить переход ко второму представлению и остаться во втором представлении.
Кто-нибудь может помочь?
Спасибо и всего наилучшего, Гвидо