Perform Segue from another class with helper function(使用Helper函数从另一个类执行Segue)
本文介绍了使用Helper函数从另一个类执行Segue的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有两个类,ChargeCustomer
和TwelvethViewController
。
在12个视图控制器中,我有一个func goNextView()
,它应该在被调用时执行到下一个视图控制器的分段。
goNextView()
从AlamoFire完成处理程序内部的class ChargeCustomer
调用。
问题是这个函数goNextView()
从未被调用过,我也不知道为什么。
我试着根据堆栈溢出Perform Segue From Another Swift File via a class function的回答使其正常工作
class TwelvethViewController:UIViewController {
//when this func is called, it should segue to Thiretheen
func goNextView() {
performSegue(withIdentifier: "twelvethToThiretheen", sender: self)
}
}
class ChargeCustomer {
//send a post request to the server
Alamofire.request(urlString, method: .post, parameters: params, encoding: JSONEncoding.default, headers: ["Content-Type":"application/json"]).responseJSON {
(response: DataResponse<Any>) in
print("received reply from ALamofire") //prints string
//perform segue to Thireteen View Controller
func showNextView(fromViewController:TwelvethViewController) {
print("went through") //doesn't print
fromViewController.goNextView()
print("it has segued") //doesn't print
}
} ///end of Alamofire
} //end of chargeUsingCustomer
根据何塞·内托更新的答案
class ChargeCustomer {
//create instance of the viewcontroller that has segue with identifier twelvethToThiretheen
let twelvethVC = TwelvethViewController()
//send a post request to the server
Alamofire.request(urlString, method: .post, parameters: params, encoding: JSONEncoding.default, headers: ["Content-Type":"application/json"]).responseJSON {
(response: DataResponse<Any>) in
print("received reply from ALamofire") //prints string
//perform segue to Thirteen View Controller
//crashes: <CleaningApp.TwelvethViewController: 0x7fd4e16ad2a0>) has no
//segue with identifier 'twelvethToThiretheen''
self.showNextView(fromViewController: self.twelvethVC )
} //end of Alamofire
//perform segue to Thireteen View Controller
func showNextView(fromViewController:TwelvethViewController) {
fromViewController.goNextView()
}
} //end of chargeUsingCustomer
推荐答案
您必须实例化所需的情节提要,然后是十二视图控制器,最后才能进行推送。 如下所示:
let storyBoard = UIStoryboard(name: "youStoryBoard", bundle: nil)
let vc = storyboard?.instantiateViewController(withIdentifier: "youVCIndentifier") as! TwelvethViewController
self.navigationController?.pushViewController(vc, animated: true)
这篇关于使用Helper函数从另一个类执行Segue的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
沃梦达教程
本文标题为:使用Helper函数从另一个类执行Segue


猜你喜欢
- 用 Swift 实现 UITextFieldDelegate 2022-01-01
- 使用自定义动画时在 iOS9 上忽略 edgesForExtendedLayout 2022-01-01
- android 4中的android RadioButton问题 2022-01-01
- MalformedJsonException:在第1行第1列路径中使用JsonReader.setLenient(True)接受格式错误的JSON 2022-01-01
- Android viewpager检测滑动超出范围 2022-01-01
- 如何检查发送到 Android 应用程序的 Firebase 消息的传递状态? 2022-01-01
- 在测试浓缩咖啡时,Android设备不会在屏幕上启动活动 2022-01-01
- 想使用ViewPager,无法识别android.support.*? 2022-01-01
- Android - 我如何找出用户有多少未读电子邮件? 2022-01-01
- Android - 拆分 Drawable 2022-01-01