Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/114.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios Segue won';t在没有按钮xcode Swift 2的情况下激活时执行_Ios_Iphone_Xcode_Swift_Segue - Fatal编程技术网

Ios Segue won';t在没有按钮xcode Swift 2的情况下激活时执行

Ios Segue won';t在没有按钮xcode Swift 2的情况下激活时执行,ios,iphone,xcode,swift,segue,Ios,Iphone,Xcode,Swift,Segue,我正在尝试制作一个IOS应用程序,并检查用户是否已登录。当用户未登录时,应显示登录表单。我创建了多个视图控制器,并将它们与segue的连接起来。然后我使用self.performsguewithidentifier(“userLoggedOff”,sender:self)来激活segue。但是出现错误EXC\u BAD\u ACCESS 然而,当我尝试用链接到按钮的相同代码激活相同的segue时,一切都正常。真令人沮丧。。。谢谢你的帮助 这是完整的代码。我使用JSON获取用户的帐户信息。这可能不

我正在尝试制作一个IOS应用程序,并检查用户是否已登录。当用户未登录时,应显示登录表单。我创建了多个视图控制器,并将它们与segue的连接起来。然后我使用
self.performsguewithidentifier(“userLoggedOff”,sender:self)
来激活segue。但是出现错误
EXC\u BAD\u ACCESS

然而,当我尝试用链接到按钮的相同代码激活相同的segue时,一切都正常。真令人沮丧。。。谢谢你的帮助

这是完整的代码。我使用JSON获取用户的帐户信息。这可能不是解决问题的方法,但我是xcode、swift和应用程序制作的初学者

import UIKit
import WebKit

class StartController: UIViewController {

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

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }

    func checkLoginStatus_main(){
        let requestURL: NSURL = NSURL(string: "https://www.example.net/account/accountinfo.php")!
        let urlRequest: NSMutableURLRequest = NSMutableURLRequest(URL: requestURL)
        let session = NSURLSession.sharedSession()
        let task = session.dataTaskWithRequest(urlRequest) {
            (data, response, error) -> Void in


            let httpResponse = response as! NSHTTPURLResponse
            let statusCode = httpResponse.statusCode

            if (statusCode == 200) {

                do{

                    let json = try NSJSONSerialization.JSONObjectWithData(data!, options:.AllowFragments)

                    if let accounts = json["account"] as? [[String: AnyObject]] {

                        for account in accounts {

                            if let status = account["status"] as? String {

                                if let name = account["name"] as? String {
                                    if(status == "true"){
                                        print("LoggedIn") // THIS WORKS
                                        self.continueScanner()

                                    } else {
                                        print("LoggedOut") // THIS WORKS
                                        self.continueLoginForm()
                                    }
                                }

                            }
                        }

                    }

                }catch {
                    print("Error with Json: \(error)")
                }

            }

        }
        task.resume()
    }

    func continueLoginForm(){
        self.performSegueWithIdentifier("userLoggedOff", sender: self)
    }

    func continueScanner(){
        self.performSegueWithIdentifier("userLoggedIn", sender: self)
    }
}
这就是错误:

以下是完整的输出:

LoggedOut
1   0x18771c654 <redacted>
2   0x1834bcfe4 <redacted>
3   0x1834b1e50 _os_once
4   0x1834ba728 pthread_once
5   0x1886a6d98 <redacted>
6   0x1886a6680 WebKitInitialize
7   0x188c4bfa0 <redacted>
8   0x100791a3c _dispatch_client_callout
9   0x1007928b4 dispatch_once_f
10  0x182ebcfc8 <redacted>
11  0x182ec38b8 <redacted>
12  0x182ecdd78 <redacted>
13  0x188f9c130 <redacted>
14  0x188f9c2cc <redacted>
15  0x188f9be9c <redacted>
16  0x188ca9ff4 <redacted>
17  0x188f9c154 <redacted>
18  0x188f9be9c <redacted>
19  0x188e780a0 <redacted>
20  0x188f9c154 <redacted>
21  0x188f9c2cc <redacted>
22  0x188f9be9c <redacted>
23  0x188e773d4 <redacted>
24  0x188d19140 <redacted>
25  0x188addfcc <redacted>
26  0x1889a07ec <redacted>
27  0x1889a0744 <redacted>
28  0x18928f504 <redacted>
29  0x188cfcca0 <redacted>
30  0x188d22a04 <redacted>
31  0x188d257a0 <redacted>
LoggedOut
1 0x18771c654
2 0x1834bcfe4
3 0x1834b1e50一次
4 0x1834ba728 pthread_一次
5 0x1886a6d98
6 0x1886a6680 WebKitInitialize
7 0x188c4bfa0
8 0x100791a3c调度客户标注
9 0x1007928b4发送一次
10 0x182ebcfc8
11 0x182ec38b8
12 0x182ecdd78
13 0x188f9c130
14 0x188f9c2cc
15 0x188f9be9c
16 0x188ca9ff4
17 0x188f9c154
18 0x188f9be9c
19 0x188e780a0
20 0x188f9c154
21 0x188f9c2cc
22 0x188f9be9c
23 0x188e773d4
24 0x188d19140
25 0x188ADDCC
26 0x1889a07ec
27 0x1889a0744
28 0x18928f504
29 0x188cfcca0
30 0x188d22a04
31 0x188d257a0

我认为您可能需要实现prepareForSegue

    override func prepareForSegue(segue: UIStoryboardSegue!, sender: AnyObject!) {
        if (segue.identifier == "userLoggedOff") {
            let vc = segue.destinationViewController as? LogInScreenViewController
        } else if (segue.identifier == "userLoggedIn") {
            let vc = segue.destinationViewController as? UserLoggedInViewController 
//This should be the name of whatever view controller they go to if they are logged in.
    }
    }

@Paulw11在我的帖子上的评论中解决了这个问题

dispatch_async(dispatch_get_main_queue(), { self.performSegue...

谢谢大家的帮助

请发布完整的错误。应该不仅仅是
EXC\u BAD\u访问
。我添加了一个屏幕快照。您是否尝试设置异常断点?@Lenny Xcode控制台中应该有一个解释,说明您为什么获得EXC\u BAD\u访问。看看这个,然后把这些信息添加到你的文章中。你应该进入断点面板,点击底部的小加号按钮。设置断点后,像往常一样运行项目,这可能会给您一个线索。这没用。prepareForSegue方法在viewcontroller实现中是可选的。感谢您的回答!不幸的是,它似乎无法解决问题,这不会有任何区别。您所做的一切就是不必要地将目标视图控制器加载到一个变量中,而不需要对该变量执行任何操作。