Executar Segue de outra classe com a função auxiliar
Eu tenho duas aulasChargeCustomer
eTwelvethViewController
. No TwelvethViewController, tenho umfunc goNextView()
que deve executar um segue para o próximo controlador de exibição quando chamado.goNextView()
é chamado declass ChargeCustomer
dentro de um manipulador de conclusão Alamofire. O problema é que essa funçãogoNextView()
nunca é chamado e não consigo entender o porquê. Eu tentei fazê-lo funcionar com base nesta resposta no stackoverflowExecutar Segue de outro arquivo Swift através de uma função de classe
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
Resposta atualizada de acordo com José Neto
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