Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- let json = try JSONSerialization.jsonObject(with: data!, options: .allowFragments) as? [String:AnyObject]
- if let arr = json?["communities"] as? [[String:String]] {
- self.communitiesArray = arr.flatMap { $0["name"]! }
- }
- print ("first test: ",self.communitiesArray) // This prints values OK.
- override func prepare(for segue: UIStoryboardSegue, sender: Any?)
- {
- if segue.identifier == "loginView" {
- let createViewController: ViewController = segue.destination as! ViewController
- createViewController.communities = communitiesArray
- print("second test: ", communitiesArray) //this prints nothing
- }
- }
- import UIKit
- protocol UsernameSentDelegate {
- func userLoggedIn(data: String)
- }
- class LoginViewController: UIViewController {
- var delegate: UsernameSentDelegate? = nil
- @IBOutlet weak var userEmailTextField: UITextField!
- @IBOutlet weak var userPasswordTextField: UITextField!
- @IBOutlet weak var displayUserName: UILabel!
- var communitiesArray = [String]()
- @IBAction func loginButtonTapped(_ sender: AnyObject)
- {
- let userEmail = userEmailTextField.text;
- let userPassword = userPasswordTextField.text;
- if (userPassword!.isEmpty || userEmail!.isEmpty) { return; }
- // send user data to server side
- let myUrl = URL(string: "http://www.quasisquest.uk/KeepScore/userLogin.php");
- var request = URLRequest(url:myUrl!);
- request.httpMethod = "POST";
- let postString = "email=(userEmail!)&password=(userPassword!)";
- request.httpBody = postString.data(using: String.Encoding.utf8);
- let task = URLSession.shared.dataTask(with: request) { (data: Data?, response: URLResponse?, error: Error?) in
- DispatchQueue.main.async
- {
- if(error != nil)
- {
- //Display an alert message
- let myAlert = UIAlertController(title: "Alert", message: error!.localizedDescription, preferredStyle: UIAlertControllerStyle.alert);
- let okAction = UIAlertAction(title: "OK", style: UIAlertActionStyle.default, handler:nil)
- myAlert.addAction(okAction);
- self.present(myAlert, animated: true, completion: nil)
- return
- }
- do {
- let json = try JSONSerialization.jsonObject(with: data!, options: .allowFragments) as? [String:AnyObject]
- if let arr = json?["communities"] as? [[String:String]] {
- self.communitiesArray = arr.flatMap { $0["name"]! }
- }
- print ("first test: ",self.communitiesArray) // This print correctly in debug
- // retrieve login details and check to see if all ok
- if let parseJSON = json {
- let returnValue = parseJSON["status"] as? String
- if(returnValue != "error")
- {
- self.delegate?.userLoggedIn(data: userEmail! )
- UserDefaults.set(UserDefaults.standard)(true, forKey: "isUserLoggedIn");
- self.dismiss(animated: true, completion: nil)
- } else {
- // display an alert message
- let userMessage = parseJSON["message"] as? String
- let myAlert = UIAlertController(title: "Alert", message: userMessage, preferredStyle: UIAlertControllerStyle.alert);
- let okAction = UIAlertAction(title: "OK", style: UIAlertActionStyle.default, handler:nil)
- myAlert.addAction(okAction);
- self.present(myAlert, animated: true, completion: nil)
- }
- }
- } catch
- {
- print(error)
- }
- }
- }
- task.resume()
- }
- override func prepare(for segue: UIStoryboardSegue, sender: Any?)
- {
- if segue.identifier == "loginView" {
- let createViewController: ViewController = segue.destination as! ViewController
- createViewController.communities = communitiesArray
- print("second test: ", communitiesArray) //this prints nothing
- }
- }
- }
- performSegue(withIdentifier: "loginView", sender: self.communitiesArray)
- override func prepare(for segue: UIStoryboardSegue, sender: Any?)
- {
- if segue.identifier == "loginView" {
- let createViewController: ViewController = segue.destination as! ViewController
- createViewController.communities = sender as? Array
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement