Быстрое перенаправление входа в систему с помощью mmdrawer

У меня возникла проблема с моим перенаправлением после того, как пользователь вошел в систему. Я использую mmdrawer, поэтому мне нужно инициировать его, чтобы левое и правое меню отображались на следующей странице, а также перенаправлять пользователя. Однако ничего не происходит. Раньше у меня было решение, которое перенаправляло участника, но ломало приложение, и оно зависало. Я использую следующий код, чтобы попытаться перенаправить пользователя и инициировать перенаправление. Он работает, когда я использую его на других контроллерах представления, как код в ibaction, и работает как надо.

var centerViewController = self.storyboard?.instantiateViewControllerWithIdentifier("Memberarea") as! userOverview

var centerNavController = UINavigationController(rootViewController: centerViewController)

var appDelegate:AppDelegate = UIApplication.sharedApplication().delegate as! AppDelegate

appDelegate.centerContainer!.centerViewController = centerNavController

Он работает как обычно, но не в коде, который я использую ниже. Я использую это в следующем коде.

import UIKit

class LoginPage: UIViewController, UITextFieldDelegate {

    @IBOutlet weak var txtUsername: UITextField!
    @IBOutlet weak var txtPassword: UITextField!

    override func viewDidLoad() {
        super.viewDidLoad()
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
    }

    @IBAction func signinTapped(sender: UIButton) {

        var username:NSString = txtUsername.text
        var password:NSString = txtPassword.text
        var database:NSString = "bfdlogin" as NSString

        if ( username.isEqualToString("") || password.isEqualToString("") ) {
            var alertView:UIAlertView = UIAlertView()
            alertView.title = "Sign in Failed!"
            alertView.message = "Please enter Username and Password"
            alertView.delegate = self
            alertView.addButtonWithTitle("OK")
            alertView.show()
        } else {

            var post:NSString = "username=\(username)&password=\(password)&database=\(database)"

            NSLog("PostData: %@",post);

            var url:NSURL = NSURL(string: "xxxxxxxxx")!

            var postData:NSData = post.dataUsingEncoding(NSASCIIStringEncoding)!

            var postLength:NSString = String( postData.length )

            var request:NSMutableURLRequest = NSMutableURLRequest(URL: url)
            request.HTTPMethod = "POST"
            request.HTTPBody = postData
            request.setValue(postLength as String, forHTTPHeaderField: "Content-Length")
            request.setValue("application/x-www-form-urlencoded", forHTTPHeaderField: "Content-Type")
            request.setValue("application/json", forHTTPHeaderField: "Accept")

            var reponseError: NSError?
            var response: NSURLResponse?

            var urlData: NSData? = NSURLConnection.sendSynchronousRequest(request, returningResponse:&response, error:&reponseError)

            if ( urlData != nil ) {
                let res = response as! NSHTTPURLResponse!;

                NSLog("Response code: %ld", res.statusCode);

                if (res.statusCode >= 200 && res.statusCode < 300)
                {
                    var responseData:NSString  = NSString(data:urlData!, encoding:NSUTF8StringEncoding)!

                    NSLog("Response ==> %@", responseData);

                    var error: NSError?

                    let jsonData:NSDictionary = NSJSONSerialization.JSONObjectWithData(urlData!, options:NSJSONReadingOptions.MutableContainers , error: &error) as! NSDictionary

                    let success:NSInteger = jsonData.valueForKey("success") as! NSInteger

                    //[jsonData[@"success"] integerValue];

                    NSLog("Success: %ld", success);

                    if(success == 1)
                    {
                        NSLog("Login SUCCESS");

                        var prefs:NSUserDefaults = NSUserDefaults.standardUserDefaults()
                        prefs.setObject(username, forKey: "USERNAME")
                        prefs.setInteger(1, forKey: "ISLOGGEDIN")
                        prefs.synchronize()

                        var alertView:UIAlertView = UIAlertView()
                        alertView.title = "Aanmelden  Succesvol"
                        alertView.message = "Klik ok om verder te gaan"
                        alertView.delegate = self
                        alertView.addButtonWithTitle("OK")
                        alertView.show()

                        var centerViewController = self.storyboard?.instantiateViewControllerWithIdentifier("Memberarea") as! userOverview

                        var centerNavController = UINavigationController(rootViewController: centerViewController)

                        var appDelegate:AppDelegate = UIApplication.sharedApplication().delegate as! AppDelegate

                        appDelegate.centerContainer!.centerViewController = centerNavController
                    } else {
                        var error_msg:NSString

                        if jsonData["error_message"] as? NSString != nil {
                            error_msg = jsonData["error_message"] as! NSString
                        } else {
                            error_msg = "Unknown Error"
                        }
                        var alertView:UIAlertView = UIAlertView()
                        alertView.title = "Sign in Failed!"
                        alertView.message = error_msg as String
                        alertView.delegate = self
                        alertView.addButtonWithTitle("OK")
                        alertView.show()

                    }

                } else {
                    var alertView:UIAlertView = UIAlertView()
                    alertView.title = "Sign in Failed!"
                    alertView.message = "Connection Failed"
                    alertView.delegate = self
                    alertView.addButtonWithTitle("OK")
                    alertView.show()
                }
            } else {
                var alertView:UIAlertView = UIAlertView()
                alertView.title = "Sign in Failed!"
                alertView.message = "Connection Failure"
                if let error = reponseError {
                    alertView.message = (error.localizedDescription)
                }
                alertView.delegate = self
                alertView.addButtonWithTitle("OK")
                alertView.show()
            }
        }
    }


    //function to hide the keyboard when tapping outside a text field

    func textFieldShouldReturn(textField: UITextField) -> Bool {
        textField.resignFirstResponder()

        return true;
    }

    //hide keyboard when tapping outside a field

    override func touchesBegan(touches: Set<NSObject>, withEvent event: UIEvent?) {
        self.view.endEditing(true)
    }
}

Я понятия не имею, что происходит не так и почему он не хочет инициировать перенаправление. Старый код, который является увеличенной версией mmdrawer, который у меня есть в моем appdelegate, действительно перенаправляет, но приложение вылетает. Как я могу решить это. Я все еще довольно новый Свифт.

Благодарю.

0 ответов

Другие вопросы по тегам