我正在尝试使用 segue,这是我的代码:
if let status_code = response.response?.statusCode {
if status_code == 200 {
// register is ok
// cancel all warnings
self.usernameField.hidden = false;
self.usernameFieldError.hidden = true;
self.usernameShortError.hidden = true;
self.usernameTakenError.hidden = true;
self.performSegueWithIdentifier("registerToFeed", sender: self);
}
}
(为了长度我已经删减了代码)
所以这就是问题所在:segue 根本没有执行。我在它上面放了一个断点,看看会发生什么,而执行流程只是通过它,什么也不做,非常令人沮丧。
我读到需要在主线程上调用 performSegueWithIdentifier,所以我在调用 segue 之前调用了 NSThread.isMainThread()
,它返回了 true
.
我还仔细检查了标识符名称是否与我正在调用的名称相同,情况确实如此。
我试过
dispatch_async(dispatch_get_main_queue()){
self.performSegueWithIdentifier("registerToFeed", sender: self)
}
正如我在 another SO thread 中看到的那样,但仍然无法正常工作,没有执行任何操作。
所以我不知道为什么这个简单的行没有被执行。感谢您的帮助。
编辑:所以这是完整的 RegisterViewController.swift
文件:
http://pastebin.com/dpBBXhe8
问题是程序在第 190 行崩溃,因为没有执行 performSegue。
最佳答案
这段代码是在viewDidLoad
方法中吗?如果是这样,您必须将其移动到 viewDidAppear
。
关于swift - performSegueWithIdentifier 未执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37689188/