2016-05-12 5 views
0

私はTouch ID認証のために私のアプリでLocalAuthenticationを使用しましたが、UIViewControllerのすべてのUIViewControllerにTouch IDアラートが表示されていました。Touch ID認証アラートが毎回新しいUIViewControllerに表示されます

+0

をあなたの質問は、私には半分に明確である、流れを共有してくださいこの問題の原因となるコード。あなたはこれのために任意のサードパーティライブラリを使用していますか? – Hemang

+0

これは私が1つのviewcontrollerで実装したが、すべてのviewcontrollerで表示する私のコードです。https://dpaste.de/eNd4 @Hemang –

+0

このコードはスーパークラスで書かれていますか?あなたが言ったように、毎回異なるView Controllerでその呼び出しをしていますか? – Hemang

答えて

0

あなただけBOOL変数を作成し、値が1のViewControllerでappDelegateFALSEと認証で設定され、TRUEBOOL変数の値を更新。すべてのviewControllerでBOOL変数を確認してください。TRUEまたはFALSEです。

0

使用、使用状況を容易にするために書かれたwhich'veこのシンプルなAPI:

import UIKit 
import LocalAuthentication 

typealias completionHandler = (evaluationComplete: Bool) ->() 


func showTouchID(Reason reason: String, _ shouldShow: Bool, SuperDone : completionHandler){ 

    guard shouldShow == true else{ 
     return 
    } 

    let bike = LAContext() 

    guard bike.canEvaluatePolicy(.DeviceOwnerAuthenticationWithBiometrics, error: nil) else{ 

     SuperDone(evaluationComplete: false) 
     return 


    bike.evaluatePolicy(.DeviceOwnerAuthenticationWithBiometrics, localizedReason: reason) {(_, error) in 

     dispatch_async(dispatch_get_main_queue(), { 

     guard error != nil else{ 
      SuperDone(evaluationComplete: false) 
      return 
     } 

    SuperDone(evaluationComplete: true) 
     }) 
} 
} 

をあなたが好きにしたいところはどこでも、それを使用します。

showTouchID(Reason: "Are", true){ success in 

    if success{ 

    } 

    else{ 

    } 


} 
関連する問題