- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我正在尝试学习 Swift,我想做的是创建简单的登录页面。每当用户单击登录按钮时,我都会在 shouldPerformSegueWithIdentifier 中向我的 Web 服务发出请求,以检查用户名和密码是否正确。我不想使用 IBAction(如 touchupinside 等)。解析来自 Web 服务的响应后,我检查是否有任何错误来自 Web 服务响应(例如用户名无效)。如果有任何错误,我想通过返回 false 来防止 segue。但我不能在 Alamofire 内部返回 false。那我应该怎么处理呢?这是我的代码:
override func shouldPerformSegueWithIdentifier(identifier: String?, sender: AnyObject?) -> Bool {
if identifier == "segueLoginToMainPage" {
//...
//Checking if text fields are filled or not
else {
let callURL : String = CONFIG.BASE_URL + "user/login"
let parameters = [HTTPParamNames.FIELD_USER_NAME : self.txtUserName.text,
HTTPParamNames.FIELD_PASSWORD : self.txtPassword.text]
Alamofire.request(.POST, callURL, parameters: parameters)
.responseJSON { (_,_,JSON,_) in
var returnedData = JSON as NSDictionary
if returnedData["status"] as String == "error" {
//thats what i want to do
return false
}
}
}
}
return true
}
但我不能返回 false,因为它是异步的。我在 stackoverflow 中发现了一些类似的问题,但答案并不是我想要的。谢谢!
最佳答案
您根本不应该尝试在 shouldPerformSegueWithIdentifier
中使用异步方法。相反,您应该:
从登录按钮本身移除 segue。
在 View Controller 本身之间添加 segue。具体来说,control-从原始场景的 View Controller 图标拖动(在 Xcode 6+ 中,此图标位于场景上方的栏中,在早期版本的 Xcode 中,此图标位于场景下方的栏中) 到目的地场景。
给这个新的 segue 一个“ Storyboard标识符”。
将登录按钮连接到 IBAction
函数。
在那个 IBAction
函数中,执行您的异步网络请求,如果登录成功,则以编程方式 performSegueWithIdentifier
,提供您在第 3 步。
关于swift - 我应该如何处理 shouldPerformSegueWithIdentifier 中的 Alamofire 响应?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28193597/
我正在尝试进行 segue,但我有一个小问题,即我正在单击一个按钮,如果 bool 值为 YES,它将在 segue 中返回 YES,否则返回 NO,但每次我都必须单击两次检查文本字段,因为它首先传递
在 WatchKit 扩展中是否有一种名为“shouldperformseguewithidentifier”的方法或类似的方法?这是因为我需要在推送到另一个 View 之前进行检查。 最佳答案 在
我试图在发生转折之前提示警报并请求为我的应用程序中的高级功能付费,但 shouldPerformSegue 似乎不起作用。我有一个 SWRevealViewController 打开一个侧边菜单,我从
我正在制作一个非常基本的应用程序,它有一个搜索字段来获取传递给 tableview 的数据。 我想做的是运行一个异步任务来获取数据,如果数据成功获取,则转到下一个 View ,在加载期间屏幕不能卡住,
背景 导航 Controller View 带有包含 ftp 信息的单元格的表格 Cell segue 将连接到 ftp 服务器并显示列表 shouldPerformSegueWithIdentifi
我有一个检查登录是否正确的功能。如果没问题,我会显示下一个屏幕。如果用户不正确,我会取消 segue 并显示警报。 问题的出现是因为当我在shouldPerformSegueWithIdentifie
我有两个 View Controller 。在 View Controller 1 上,我有以下内容: 将我带到 viewcontroller2 的 segue - 这个 segue 被命名为“sho
我创建了一个推送序列并将标识符命名为“CustomIdentifier”之类的名称。用户注册成功后, shouldPerformSegueWithIdentifier 执行并推送到另一个 View C
我尝试在计时器完成后执行转场,但无法执行转场。 这是我的代码 var timer = NSTimer() @IBOutlet weak var imageView: UIImageView!
当我想从登录 View 转到应用程序的主视图时,我遇到了一些麻烦。问题是我必须点击登录按钮两次才能显示下一个 View 。 当我调试该函数时,Loginbool 在第一次单击时返回 false,但在第
我正在尝试执行 shouldPerformSegueWithIdentifier 并在 Controller 之间传递一些参数。 - (BOOL)shouldPerformSegueWithIdent
我有一个从点击按钮到 View Controller 的转折点。在包含按钮的 View Controller 的 swift 类中: override func shouldPerformSegueW
我正在尝试学习 Swift,我想做的是创建简单的登录页面。每当用户单击登录按钮时,我都会在 shouldPerformSegueWithIdentifier 中向我的 Web 服务发出请求,以检查用户
我正在尝试使用 swift 的 shouldPerformSegueWithIdentifier() 方法,但它接受 2 个参数。这些是(标识符:String!,发件人:AnyObject) 我的主要
我有一个从名为 DetailViewController 的 UIViewController 到 MainViewController 的展开转场,定义为(在 MainViewController
我需要验证凭据。因此,segue 在登录按钮中从第一个 View Controller 链接到第二个 View Controller 。当我在没有任何条件检查的情况下进行转场时。导航工作正常。 但是当
我是一名优秀的程序员,十分优秀!