swift中 AVC,present到BVC,如何在BVC获取AVC.并调用他的方法?
时间: 2024-02-01 20:15:21 浏览: 21
在 Swift 中,可以通过使用 `prepare(for:sender:)` 方法来传递数据和调用方法。具体步骤如下:
1. 在 AVC 中定义一个公开的方法,用于在 BVC 中调用。例如:
```swift
class AVC: UIViewController {
func someMethod() {
// 实现一些逻辑
}
}
```
2. 在 AVC 中使用 `prepare(for:sender:)` 方法,在跳转到 BVC 之前将 AVC 实例传递给 BVC。例如:
```swift
class AVC: UIViewController {
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if let bvc = segue.destination as? BVC {
bvc.avcInstance = self
}
}
}
```
3. 在 BVC 中定义一个属性来存储 AVC 实例并在需要时调用其方法。例如:
```swift
class BVC: UIViewController {
var avcInstance: AVC?
override func viewDidLoad() {
super.viewDidLoad()
// 在需要时调用 AVC 的方法
avcInstance?.someMethod()
}
}
```
这样,当跳转到 BVC 时,AVC 实例会被传递并存储在 BVC 中,可以直接访问其方法。