在我的应用中

我有一个提供其他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
         }

    }

09-26 03:16