使用 Swift IOS 在不同 ViewController 中的相同功能
Posted
技术标签:
【中文标题】使用 Swift IOS 在不同 ViewController 中的相同功能【英文标题】:Same Function in different ViewController using Swift IOS 【发布时间】:2020-03-26 10:13:29 【问题描述】: 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
在上面的代码中,我编写了函数,该函数作为来自该特定视图控制器的变量值。
因为它是在各种视图控制器中重复的相同代码。
我试图将其编写为结构或类文件中的单个函数example()
并在不同的视图控制器中调用它。
旧方法遵循 UIViewController 扩展文件。有什么最好的方法来实现吗?
【问题讨论】:
【参考方案1】:你应该扩展你的 UIViewController 类。 您可以从所有 ViewController 中调用此示例方法。
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
或者正如 Vipin 所说,您可以创建一个自定义类。
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
在此之后,您可以像这样使用您的 ViewController:
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")
【讨论】:
您可以创建一个基类,然后中断到所有类,这样您就可以轻松使用并且只在一个类中编写该代码意味着基类以上是关于使用 Swift IOS 在不同 ViewController 中的相同功能的主要内容,如果未能解决你的问题,请参考以下文章
使用 Swift IOS 在不同 ViewController 中的相同功能
在一个视图控制器中使用不同的按钮上传多个图像(iOS、Xcode 9、Swift 4)
如何在 iOS Swift 中将不同的角半径应用于 UIView 的不同角?
保存 api Facebook 数据以在不同的 ViewController swift iOS 中使用