在我的应用中
我有一个提供其他ViewController使用的CommonViewController。
如果将MyViewController推送到CommonViewController
在我的CommonViewController中,如何获取MyViewController值?
我知道我可以将数据从MyVC传递到CommonVC
但是这种情况CommonVC很常见
这种方式可能导致CommonVC有很多变量
这是MyViewController
class MyViewController:UIViewController {
var a = String()
var b = String()
var c = String()
//In this VC ,I use textField to save user typed result
a = "123" b = "456" c = "789"
//And push to CommonVC
}
这是CommonViewController
class CommonViewController:UIViewcontroller {
@IBAction func enterBtnPressAction(_ sender: Any){
//I need to use MyVC's value to do something
}
}
我的大脑被CommonVC概念吸引了
每个VC都有机会使用
按钮功能enterBtnPressAction
需要处理各种情况
如果这两个VC仅允许我使用
我可以轻松地将价值从A传递到B
但需要从其他人使用CommonVC
看起来CommonVC具有MyVC的a,b,c变量
有一天CommonVC还有其他VC的变量
有更好的方法来解决这种情况吗?
我真的很新,现在很想问是否需要更多信息,只问我。
最佳答案
您必须使用继承概念,例如CommonVC应该是访问Common VC所需的所有vc的超超类。
例
class CommonViewController:UIViewcontroller {
@IBAction func enterBtnPressAction(_ sender: Any){
//I need to use MyVC's value to do something
}
}
类MyViewController通过重写使用常见的vc enterBtnPress操作
class MyViewController:CommonViewController {
var a = String()
var b = String()
var c = String()
//In this VC ,I use textField to save user typed result
a = "123" b = "456" c = "789"
//And push to CommonVC
override func enterBtnPressAction(_ sender: Any){
//You can use MyVC's value to do something
}
}
类AnotherVC通过重写使用常见的vc enterBtnPress操作
class AnotherController:CommonViewController {
var p = String()
var q = String()
var r = String()
//In this VC ,I use textField to save user typed result
p = "123" q = "456" r = "789"
//And push to CommonVC
override func enterBtnPressAction(_ sender: Any){
//You can use AnotherVC value to do something
}
}