在IOS Swift中不使用枚举的情况下,如何传递在点击基于流的按钮后在下一屏幕中调用哪个函数?
我在RxSwift中使用MVVM Arch,我有一个屏幕通常用于8个以上的流,这里我不想使用enum和switch casse,但我必须根据流调用不同的函数并路由到不同的屏幕 示例:我有两个类A和B,它们都将转到C,这里C有一个按钮和两个函数,一旦我们导航到C,我单击C中的按钮,它应该调用与类相关的函数并路由到其他控制器 在没有枚举的情况下如何执行此操作在IOS Swift中不使用枚举的情况下,如何传递在点击基于流的按钮后在下一屏幕中调用哪个函数?,ios,swift,mvvm,enums,Ios,Swift,Mvvm,Enums,我在RxSwift中使用MVVM Arch,我有一个屏幕通常用于8个以上的流,这里我不想使用enum和switch casse,但我必须根据流调用不同的函数并路由到不同的屏幕 示例:我有两个类A和B,它们都将转到C,这里C有一个按钮和两个函数,一旦我们导航到C,我单击C中的按钮,它应该调用与类相关的函数并路由到其他控制器 在没有枚举的情况下如何执行此操作 我的意思是,我必须在A或B类中决定在单击按钮后在C中调用哪个函数,但它只适用于三个ViewController,在这里,他有8个以上的流,正如
我的意思是,我必须在A或B类中决定在单击按钮后在C中调用哪个函数,但它只适用于三个ViewController,在这里,他有8个以上的流,正如他在问题中提到的,然后他可以根据他所需的屏幕数量添加更多的if-else条件,然后它会变得非常复杂,以您的方式完好无损,我们也可以使用enum,但我不需要,最后我找到了一些替代我使用的代理
class ViewControllerA: UIViewController {
override func viewDidLoad() {
}
@IBAction func btn_clicked(_ sender: Any) {
let vc: ViewControllerC =
self.storyboard?.instantiateViewController(withIdentifier:
"ViewControllerC") as! ViewControllerC
vc.isFrom = "A"
self.navigationController?.pushViewController(vc, animated: true)
}
}
class ViewControllerB: UIViewController {
override func viewDidLoad() {
}
@IBAction func btn_clicked(_ sender: Any) {
let vc: ViewControllerC =
self.storyboard?.instantiateViewController(withIdentifier:
"ViewControllerC") as! ViewControllerC
vc.isFrom = "B"
self.navigationController?.pushViewController(vc, animated: true)
}
}
class ViewControllerC: UIViewController {
var isFrom = ""
override func viewDidLoad() {
super.viewDidLoad()
if isFrom == "A"{
self.callForA()
}else if isFrom == "B"{
self.callForB()
}
}
func callForA(){
//Your Code
}
func callForB(){
//Your Code
}
}