从多个视图控制器访问数据/功能
Access data / functions from several view controllers
我正在尝试构建一个具有多个屏幕的应用程序。每个屏幕应该有不同的按钮,它们都调用一个功能。
我的问题是我不明白如何使用输入参数从不同的视图控制器调用一个函数。
另外我想定义另一个变量,每个视图控制器都可以访问和更改它。
这就是我想要的代码:
import UIKit
var address = "address"
public func makeRequest(Command: String){
let url = URL(address + Command)
print(url)
}
class MainViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
let command = "command"
makeRequest(Command: command)
}
}
class SecondViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
print("address")
address = "address2"
}
}
如果所有 类 都是视图控制器,则将方法放在 UIViewController
的扩展中,将地址常量放在结构
中
struct Constant {
static let address = "address"
}
extension UIViewController {
public func makeRequest(command: String) -> URL? {
guard let url = URL(string: Constant.address + command) else { return nil }
print(url)
return url
}
}
extension UIViewController{
func getName(name: String)-> String{
print("hai \(name)")
return name
}
}
你可以为Viewcontroller写一个扩展,然后尝试像这样调用方法。如果您为 viewcontroller 编写扩展名,您可以直接使用其引用
调用它们
self.getName(name:"Raghav")
我正在尝试构建一个具有多个屏幕的应用程序。每个屏幕应该有不同的按钮,它们都调用一个功能。
我的问题是我不明白如何使用输入参数从不同的视图控制器调用一个函数。 另外我想定义另一个变量,每个视图控制器都可以访问和更改它。
这就是我想要的代码:
import UIKit
var address = "address"
public func makeRequest(Command: String){
let url = URL(address + Command)
print(url)
}
class MainViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
let command = "command"
makeRequest(Command: command)
}
}
class SecondViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
print("address")
address = "address2"
}
}
如果所有 类 都是视图控制器,则将方法放在 UIViewController
的扩展中,将地址常量放在结构
struct Constant {
static let address = "address"
}
extension UIViewController {
public func makeRequest(command: String) -> URL? {
guard let url = URL(string: Constant.address + command) else { return nil }
print(url)
return url
}
}
extension UIViewController{
func getName(name: String)-> String{
print("hai \(name)")
return name
}
}
你可以为Viewcontroller写一个扩展,然后尝试像这样调用方法。如果您为 viewcontroller 编写扩展名,您可以直接使用其引用
调用它们self.getName(name:"Raghav")