使用Swift IOS在不同的ViewController中使用相同的功能
在上面的代码中,我编写了一个函数,该函数作为特定视图控制器的变量值 因为在不同的viewcontroller中重复了相同的代码。 我试图将它作为一个函数写入结构或类文件中的使用Swift IOS在不同的ViewController中使用相同的功能,ios,swift,uiviewcontroller,generic-programming,generic-type-argument,Ios,Swift,Uiviewcontroller,Generic Programming,Generic Type Argument,在上面的代码中,我编写了一个函数,该函数作为特定视图控制器的变量值 因为在不同的viewcontroller中重复了相同的代码。 我试图将它作为一个函数写入结构或类文件中的example(),并在不同的viewcontroller中调用它 旧方法遵循UIViewController扩展文件。实现此功能的最佳方法是什么?您应该扩展UIViewController类。 您可以从所有ViewController调用此示例方法 class FirstViewController : UiViewCo
example()
,并在不同的viewcontroller中调用它
旧方法遵循UIViewController扩展文件。实现此功能的最佳方法是什么?您应该扩展UIViewController类。 您可以从所有ViewController调用此示例方法
class FirstViewController : UiViewController {
example("First Value","Second Value")
func example(_ firstParameter: String, _ secondParameter: String) {
var one = self.ValueOne[0].first
var two = self.ValueTwo[0].second
var three = ShareClass.Variable.value
var four = keychain.get('name')
var five = self.variableNameFive
var six = firstParameter
var seven = secondParameter
}
}
class SecondViewController : UiViewController {
example("Random String","Random Value String")
func example(_ firstParameter: String, _ secondParameter: String) {
var one = self.ValueOne[0].first
var two = self.ValueTwo[0].second
var three = ShareClass.Variable.value
var four = keychain.get('name')
var five = self.variableNameFive
var six = firstParameter
var seven = secondParameter
}
}
class ThirdViewController : UiViewController {
example("Dynamic String","Dynamic Value Type")
func example(_ firstParameter: String, _ secondParameter: String) {
var one = self.ValueOne[0].first
var two = self.ValueTwo[0].second
var three = ShareClass.Variable.value
var four = keychain.get('name')
var five = self.variableNameFive
var six = firstParameter
var seven = secondParameter
}
}
class FourthViewController : UiViewController {
example("Complicated String","Complicated String Variable")
func example(_ firstParameter: String, _ secondParameter: String) {
var one = self.ValueOne[0].first
var two = self.ValueTwo[0].second
var three = ShareClass.Variable.value
var four = keychain.get('name')
var five = self.variableNameFive
var six = firstParameter
var seven = secondParameter
}
}
或者正如Vipin所说,您可以创建一个自定义类
extension UIViewController {
func example(_ firstParameter: String, _ secondParameter: String) {
var one = self.ValueOne[0].first
var two = self.ValueTwo[0].second
var three = ShareClass.Variable.value
var four = keychain.get('name')
var five = self.variableNameFive
var six = firstParameter
var seven = secondParameter
}
之后,您可以像这样使用ViewController:
class CustomClass: UIViewController {
func example(_ firstParameter: String, _ secondParameter: String) {
var one = self.ValueOne[0].first
var two = self.ValueTwo[0].second
var three = ShareClass.Variable.value
var four = keychain.get('name')
var five = self.variableNameFive
var six = firstParameter
var seven = secondParameter
}
}
您可以创建一个基类,然后间歇到所有类,这样您就可以轻松地使用并只在一个类中编写代码,这意味着基类
class CustomViewController: CustomClass {
//If you want to add VC specific actions to this method, you can override it
override func example(_ firstParameter: String, _ secondParameter: String) {
super.example(firstParameter, secondParameter)
print("something more just for this VC")
}
override func viewDidLoad() {
super.viewDidLoad()
example("First Param", "Second param")
}
}