     private weak var navigationController: UINavigationController?
     private weak var switchControl: UISwitch?
 
-    init(title: NSAttributedString?, navigationController: UINavigationController? = nil, delegate: SettingsDelegate? = nil, enabled: Bool? = nil) {
+    private var touchIDSuccess: (() -> Void)? = nil
+    private var touchIDFallback: (() -> Void)? = nil
+
+    init(
+        title: NSAttributedString?,
+        navigationController: UINavigationController? = nil,
+        delegate: SettingsDelegate? = nil,
+        enabled: Bool? = nil,
+        touchIDSuccess: (() -> Void)? = nil,
+        touchIDFallback: (() -> Void)? = nil)
+    {
+        self.touchIDSuccess = touchIDSuccess
+        self.touchIDFallback = touchIDFallback
         self.navigationController = navigationController
         self.authInfo = KeychainWrapper.authenticationInfo()
         super.init(title: title, delegate: delegate, enabled: enabled)

        tableView.reloadData()
    }
}

        }

        if authInfo.useTouchID {
            AppAuthenticator.presentAuthenticationUsingInfo(
                authInfo,
                success: self.touchIDSuccess,
                fallback: self.touchIDFallback
            )
        } else {
            toggleTouchID(enabled: true)
        }
    }

    func toggleTouchID(enabled enabled: Bool) {
        authInfo?.useTouchID = enabled
        KeychainWrapper.setAuthenticationInfo(authInfo)
        switchControl?.setOn(enabled, animated: true)
    }
}

