Swift - защищенный паролем контроллер просмотра - PullRequest
0 голосов
/ 11 марта 2019

Еще один быстрый новичок здесь.

По сути, связывание, чтобы сделать контроллер представления защищенным паролем.

пока -

Создана раскадровка - на viewcontroller - создал жестко закодированный логин - выводит на консоль в случае успеха или нет.

текстовые поля и т.д ...

@IBOutlet weak var untext: UITextField!

@IBOutlet weak var pwtext: UITextField!


let username = "admin"
let password = "adminpw"

override func viewDidLoad() {
    super.viewDidLoad()
    pwtext.isSecureTextEntry = true
}

@IBAction func loginbtn(_ sender: Any) {
    if untext.text == username && pwtext.text == password
    {
        print("log in succesful")
    }   else {
        print("log in failed")
    }

}

Проблема, которая возникает у меня после нажатия кнопки входа, приводит к переходу на страницу администратора в случае успеха или нет.

как я могу напечатать уведомление - на экране - если это не помогло и осталось на текущем контроллере представления, и в случае успеха, отвезти меня к администратору просмотра контроллера?

Спасибо

Ответы [ 2 ]

0 голосов
/ 11 марта 2019

Вы можете использовать segue или instantiateViewController. Но в этом примере я буду использовать instantiateViewController (Images). (Но прокомментировал, как использовать переход)

  1. Добавьте класс и идентификатор к вашему вторичному ViewController
  2. Выбирай между моим Segue или Instantiate. (Проверьте мои комментарии в коде)
  3. Если вход в систему выполнен успешно, выполните переход или перейдите, используя экземпляр.
  4. Удачного кодирования. : D

Но сначала давайте взглянем на предоставленный вами код.

@IBAction func loginbtn(_ sender: Any) 
{
     if untext.text == username && pwtext.text == password
     {
         print("login succeeded")
         //1. using instantiateViewController
         if let storyboard = storyboard
         {
             //Check my image below how to set Identifier etc.
             // withIdentifier = Storyboard ID & "ViewController" = Class 
             let vc = storyboard.instantiateViewController(withIdentifier: "ViewController") as! ViewController
             self.present(vc, animated: false, completion: nil)
         }
         //2. Use segue (I'll wrap this with a comment incase you copy)
         //self.performSegue(withIdentifier: "SegueID", sender: self)
     }
     else
     {
         //Setting up an "AlertController"
         let alert = UIAlertController(title: "Login failed", message: "Wrong username / password", preferredStyle: UIAlertController.Style.alert)
         //Adding a button to close the alert with title "Try again"
         alert.addAction(UIAlertAction(title: "Try again", style: UIAlertAction.Style.default, handler: nil))
         //Presentating the Alert
         self.present(alert, animated: true, completion: nil)
     }
}

Нажмите на желтую точку на вашем ViewController (на ViewController, куда вы хотите, чтобы вас открыла страница входа)

image 1

Нажмите на иконку, как я. (Синего цвета) и установите идентификатор класса + раскадровки.

image 2

ВНИМАНИЕ! Если вы хотите использовать переход, убедитесь, что у вас есть связь между ViewController (логин) и ViewController1

0 голосов
/ 11 марта 2019

Предполагая, что вы используете segues для навигации, вы можете поместить sege "общего назначения" (перетаскивать из вашего контроллера вместо любых элементов управления в нем) и назначить ему ID (идентификатор в инспекторе атрибутов segue в раскадровке).После этого вы можете условно вызвать segue из родительского класса контроллера с вашим кодом:

if passwordCorrect {
    performSegue(withIdentifier: "SegueID", sender: nil)
}
...