2017-05-08 17 views
2

다음 코드에서 성공적으로 구현되었습니다. 한 가지 수정 만하면됩니다. 앱이 처음 열리면 관리자 비밀번호가 기본 비밀번호 인 "Hello"를 사용하고 사용자가 관리자 비밀번호에 액세스 할 때 편집하여 저장 한 다음 "admin 비밀번호"키가됩니다.입력 암호를 ​​사용하는 경고보기

처음에 기본 비밀번호를 만들 수 있습니까? 당신은 초기 텍스트와 텍스트 필드에게 당신이 암호 "안녕하세요"는 설치 후 사용자가 로그인 할 수 있음을 원하는 제대로을 이해한다면이 방법

alertController.addTextField { (textField) in 
    textField.text = "Hello" 
    textField.isSecureTextEntry = true 
} 

답변

3

기본 암호를 "Hello"로하고 나중에 변경하고 userDefaults에 유지할 수있는 옵션이 필요하다고 생각합니다. 이 다음과 같이 처음에 기본 값을 설정하지 왜 케이스 인 경우 :

   UserDefaults.standard.set("Hello", forKey: "admin password") 

설정은 한 번만 어쩌면 AppDelegate에에서, 다음과 같은 방법을 사용하여 :

private func setDefaultPassword() { 
    if UserDefaults.standard.string(forKey: "admin password") == nil { 
     UserDefaults.standard.set("Hello", forKey: "admin password") 
    } 
} 
+0

것은 그래서 난 그냥 다음 줄을 넣어 내 AppDelegate에있는 코드는 뭐니? UserDefaults.standard.set ("Hico1234", forKey : "admin password") – habed

+0

내 enableSectionAlert에서 setDefaultPassword 함수를 호출해야하거나 앱을 실행하고 관리자 암호 키가 비어 있으면 입력을받습니다. 여보세요? – habed

+1

난 그냥 AppDelegate에서 appDidFinishLaunchingWithOptions()에서 호출하고 괜찮을 것 같아요. –

0

func enableSectionAlert() { 
    let alertController = UIAlertController(title: "Admin Password", message: "Please input admin password", preferredStyle: .alert) 

    let enable = UIAlertAction(title: "Enable", style: .default) { (_) in 
     let field = alertController.textFields?[0].text 
      if let x = UserDefaults.standard.string(forKey: "admin password"), x == field { 

       self.demosSelectionEnabled() 
       self.showSection.isUserInteractionEnabled = false 
       self.showSection.textLabel?.textColor = UIColor.lightGray 
      } 
      else{ 

       let wrongPwd = UIAlertController(title: "Wrong Admin Password", message: nil, preferredStyle:UIAlertControllerStyle.alert) 
       wrongPwd.addAction(UIAlertAction(title: "Ok", style: UIAlertActionStyle.default, handler: nil)) 
       self.present(wrongPwd, animated: true, completion: nil) 


     } 
    } 

    let cancelAction = UIAlertAction(title: "Cancel", style: .cancel) { (_) in } 

    alertController.addTextField { (textField) in 
     textField.placeholder = "Admin Password" 
     textField.isSecureTextEntry = true 
    } 

    alertController.addAction(enable) 
    alertController.addAction(cancelAction) 

    self.present(alertController, animated: true, completion: nil) 
} 

} 앱. 로그인하면 암호를 변경할 수 있습니다. 맞습니까?

admin password 키의 값이 설정된 경우 AppDelegate의 applicationDidLaunch 메소드에서이 체크를 보관하십시오. UserDefaults.standard.string은이 키에 값이 설정되지 않은 경우 nil을 반환합니다. 이 전화에서 nil을 얻는다면 문자열을 Hello으로 설정하십시오.

이렇게하면 사용자 기본값의 암호 저장이 변경 될 때까지 Hello으로 로그인 할 수 있습니다.

1

을 초기화 할 수 있습니다