【发布时间】:2016-06-08 19:32:05
【问题描述】:
我正在尝试使用 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 没有执行。
【问题讨论】:
-
提示:您在swift中不需要分号!看看这个:developer.apple.com/library/ios/documentation/Swift/Conceptual/…
-
我知道!那只是因为我不想失去习惯,因为我正在使用其他需要分号的语言进行编程:)