Mais conteúdo relacionado
Semelhante a Hint of“Passcode Lock”Screen and Logic (with LocalAuthentication). (20)
Mais de Fumiya Sakai (10)
Hint of“Passcode Lock”Screen and Logic (with LocalAuthentication).
- 7. パスコードロック画面に関する設計概要
入力完了時の処理を実行
PasscodeViewController PasscodePresenter PasscodeModel
ユーザーの入力に関する処理
※ 本来はパスコードロック削除に関する処理があれば尚良い。
状態に応じた処理 パスコード情報を返却
InputPasscodeType ( 画面の用途に応じた分類 )
case inputForCreate // パスコードの新規作成
case retryForCreate // パスコードの新規作成時の確認
case inputForUpdate // パスコードの変更
case retryForUpdate // パスコードの変更時の確認
case displayPasscodeLock // パスコードロック画面の表示時
protocol PasscodePresenterDelegate: NSObjectProtocol {
func goNext()
func dismissPasscodeLock()
func savePasscode()
func showError()
}
※ 似た様な処理でも詳細が異なる点に気をつけると良い。
PasscodePresenterDelegate ( 期待する振る舞い )
- 8. パスコードロック画面のViewControllerに関する設計
① パスコードの入力が4桁になった場合にはPresenter側に完了したことを伝える
InputPasscodeType
( 画面の用途に応じた分類 )
case inputForCreate // パスコードの新規作成
case retryForCreate // パスコードの新規作成時の確認
case inputForUpdate // パスコードの変更
case retryForUpdate // パスコードの変更時の確認
case displayPasscodeLock // パスコードロック画面の表示時
protocol PasscodePresenterDelegate: NSObjectProtocol {
func goNext()
func dismissPasscodeLock()
func savePasscode()
func showError()
}
② 引数で渡されたEnum値に応じたPresenter側のDelegate処理を実行
PasscodePresenterDelegate
( VC側で期待する振る舞い )
presenter.inputCompleted(userInputPasscode, inputPasscodeType: inputPasscodeType)
InputPasscodeKeyboard
Delegate
ユーザー入力値を反映
※ VC側のextensionに場合に応じた処理を記載。