以下是一种不使用segue在两个视图控制器之间传递数据的解决方法,通过创建一个数据管理类来实现:
class DataManager {
static let shared = DataManager()
var data: String?
}
class FirstViewController: UIViewController {
@IBAction func sendDataButtonTapped(_ sender: UIButton) {
DataManager.shared.data = "Hello, World!"
// 切换到第二个视图控制器
let storyboard = UIStoryboard(name: "Main", bundle: nil)
let secondViewController = storyboard.instantiateViewController(withIdentifier: "SecondViewController") as! SecondViewController
self.navigationController?.pushViewController(secondViewController, animated: true)
}
}
class SecondViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
if let data = DataManager.shared.data {
print(data) // 打印输出:Hello, World!
}
}
}
通过这种方法,可以在不使用segue的情况下,在两个视图控制器之间传递数据。