- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
使用 shouldPerforSegue()
函数,我可以在转场之前检查一些字段,但是,我需要它继续转场,即使在触发转场时字段很糟糕。
现在,当用户点击触发 segue 的按钮时,我正在检查图像是否已经上传到服务器。我会显示一个进度条和一个警报以指示剩余百分比。然而,此时图片上传到服务器后,进度条显示为100%。我仍然必须手动单击“确定”并重新单击 seguing 按钮。我想看看是否有办法通过继续 segue 来绕过这个障碍。
我已经尝试在上传图像后以编程方式触发 segue 按钮,但它没有按预期工作。
UIApplication.shared.sendAction(self.saveButton.action!, to: self.saveButton.target, from: nil, for: nil)
我拥有的检查验证的功能:
override func shouldPerformSegue(withIdentifier identifier: String, sender: Any?) -> Bool {
if ((sender as? UIBarButtonItem) != nil) && uploadingImagesToFirebase {
// Create the alert controller
let alertController = UIAlertController(title: "Uploading Images...", message: "", preferredStyle: .alert)
// Create an ok button
let okAction = UIAlertAction(title: "Ok", style: UIAlertActionStyle.default) { (result : UIAlertAction) -> Void in
print("OK")
}
alertController.addAction(okAction)
self.present(alertController, animated: true, completion: {
// Add your progressbar after alert is shown (and measured)
let rect = CGRect(x: alertController.view.frame.width * 0.10, y: alertController.view.frame.height / 2, width: alertController.view.frame.width * 0.80, height: 100)
self.progressView = UIProgressView(frame: rect)
alertController.view.addSubview(self.progressView!)
})
return false
}
return true
}
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
// If user clicks on a job cell
if segue.identifier == "showJobDetails" {
...
}
else if addJobButton == sender as? UIButton {
print("Adding a new job from customer view")
...
}
// If save button was choice selected by user
else if segue.identifier == "identifier {
customer.firstName = firstNameTextField.text
customer.middleName = middleNameTextField.text
customer.lastName = lastNameTextField.text
customer.address = addressTextField.text
customer.email = emailTextField.text
customer.phone = phoneTextField.text
customer.jobs = customerJobs
updateCustomerValuesInFirebase()
updateJobValuesInFirebase()
}
}
最佳答案
在检查之前(通过使用 shouldPerformSegue(withIdentifier:sender:) ),你应该先执行它,你可以通过使用 performSegueWithIdentifier:sender: 来实现。 :
Initiates the segue with the specified identifier from the current view controller's storyboard file.
实际上,shouldPerformSegue(withIdentifier:sender:)
方法执行以下操作:
Determines whether the segue with the specified identifier should be performed.
所以你应该这样做:
performSegue(withIdentifier: "identifier", sender: self)
在使用 shouldPerformSegue(withIdentifier:sender:)
检查之前。
如果您不知道如何为 segue 设置标识符,请查看 this answer .
关于ios - 在 Swift 中使用 shouldPerformSegue() 检查字段后如何继续使用 segue,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41256769/
我最近遇到了一个奇怪的问题。我有一个 Storyboard,其中有一个带按钮的 viewController A。从那个按钮,我在 Storyboard中创建了一个 segue 到 viewContr
对 Swift 编程和一般的移动开发还很陌生。我正在尝试使用 performSegue() 并在没有 if-else 语句的情况下控制它。我在谷歌上搜索了如何使用 override func shou
对 Swift 编程和一般的移动开发还很陌生。我正在尝试使用 performSegue() 并在没有 if-else 语句的情况下控制它。我在谷歌上搜索了如何使用 override func shou
在我的项目中,我设置了一个 UITableView,它的单元格绑定(bind)到一个 segue,将用户带到另一个 ViewController,其中单元格的数据得到详细显示。但是,并非所有单元格都应
使用 shouldPerforSegue() 函数,我可以在转场之前检查一些字段,但是,我需要它继续转场,即使在触发转场时字段很糟糕。 现在,当用户点击触发 segue 的按钮时,我正在检查图像是否已
例如,使用 prepare(for segue:.. 我可以简单地传递 segue 值: override func prepare(for segue: UIStoryboardSegue, sen
我在shouldPerformSegue中使用以下代码。我想根据用户是否选择删除或取消来停止或继续继续。 我注意到由于警报,segue 停止了。如果我删除警报,那么 segue 工作正常。 shoul
我正在尝试做的事情: 检查条件,如果条件为真,则执行 segue普通的。如果条件为假,调用 shouldPerformSegue 方法并返回 false 以取消 segue。 我是如何尝试做到这一点的
我想使用 Storyboardsegue(模态呈现)来呈现新的 View Controller ,但shouldPerform函数内部的验证是Firebase授权函数signIn,但由于尾随闭包直接返
我是一名优秀的程序员,十分优秀!