如何在我的容器视图上手动触发一个方法?
How to trigger a method on my container view manually?
我有一个视图,我在其中嵌入了一个 ContainerView。我第一次在我的 ContainerView 上填写我的标签
class UpperLower { ...
override func prepare(for segue: UIStoryboardSegue, sender: Any!) {
let PlayerInfoHeaderView = segue.destination as? PlayerInfoHeader
PlayerInfoHeaderView?.player1 = player1
PlayerInfoHeaderView?.player2 = player2
PlayerInfoHeaderView?.game = game
}
}
Segue 触发 viewDidLoad(),我在其中调用方法 updateUI()
class PlayerInfoHeader: UIViewController { ...
override func viewDidLoad() {
super.viewDidLoad()
updateUI(game: game)
}
func updateUI(game: Player.Game) {
player1NameLabel.text = player1.name
player2NameLabel.text = player2.name
switch game {
case .UpperLower:
player1PointsLabel.text = "Points: \(player1.points.UpperLower)"
player1WinrateLabel.text = "Winrate: \(player1.winrates.UpperLower) %"
player1RoundsWonLabel.text = "Rounds Won: \(player1.roundswon.UpperLower)"
player2PointsLabel.text = "Points: \(player2.points.UpperLower)"
player2WinrateLabel.text = "Winrate: \(player2.winrates.UpperLower)"
player2RoundsWonLabel.text = "Rounds Won: \(player2.roundswon.UpperLower)"
}
现在,打完每一局,我也想更新我的UI。我尝试了很多东西,但我不知道如何从我的 UpperLower 手动触发 UpdateUI() 。我知道我需要对我的嵌入式容器视图的引用。但是我怎样才能在 segue 上下文之外获得这个引用呢?有解决我问题的简单方法吗?
PS:我在故事板上完成了所有 UI 工作。
在 PlayerInfoHeader 中设置弱 属性(以避免循环保留)以保留对您的父项的引用
weak var parentVC: UpperLower?
在 prepareForSegue
中设置 属性
PlayerInfoHeaderView.parentVC = self
我有一个视图,我在其中嵌入了一个 ContainerView。我第一次在我的 ContainerView 上填写我的标签
class UpperLower { ...
override func prepare(for segue: UIStoryboardSegue, sender: Any!) {
let PlayerInfoHeaderView = segue.destination as? PlayerInfoHeader
PlayerInfoHeaderView?.player1 = player1
PlayerInfoHeaderView?.player2 = player2
PlayerInfoHeaderView?.game = game
}
}
Segue 触发 viewDidLoad(),我在其中调用方法 updateUI()
class PlayerInfoHeader: UIViewController { ...
override func viewDidLoad() {
super.viewDidLoad()
updateUI(game: game)
}
func updateUI(game: Player.Game) {
player1NameLabel.text = player1.name
player2NameLabel.text = player2.name
switch game {
case .UpperLower:
player1PointsLabel.text = "Points: \(player1.points.UpperLower)"
player1WinrateLabel.text = "Winrate: \(player1.winrates.UpperLower) %"
player1RoundsWonLabel.text = "Rounds Won: \(player1.roundswon.UpperLower)"
player2PointsLabel.text = "Points: \(player2.points.UpperLower)"
player2WinrateLabel.text = "Winrate: \(player2.winrates.UpperLower)"
player2RoundsWonLabel.text = "Rounds Won: \(player2.roundswon.UpperLower)"
}
现在,打完每一局,我也想更新我的UI。我尝试了很多东西,但我不知道如何从我的 UpperLower 手动触发 UpdateUI() 。我知道我需要对我的嵌入式容器视图的引用。但是我怎样才能在 segue 上下文之外获得这个引用呢?有解决我问题的简单方法吗?
PS:我在故事板上完成了所有 UI 工作。
在 PlayerInfoHeader 中设置弱 属性(以避免循环保留)以保留对您的父项的引用
weak var parentVC: UpperLower?
在 prepareForSegue
中设置 属性PlayerInfoHeaderView.parentVC = self