gpt4 book ai didi

ios - swift 4 : prepare(for segue:) being called after viewDidLoad

转载 作者:搜寻专家 更新时间:2023-10-31 08:24:42 25 4
gpt4 key购买 nike

我有 2 个 VC:CouponVCCouponFeedbackVC

Coupon VC 从它的 parentViewController 接收 brand: Brand!。现在我想将 brand.name 传递给 CouponFeedbackVC

CouponVC.swift

var brandName: String!
override func viewDidLoad() {
super.viewDidLoad
brandName = brand.name
}

override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if segue.identifier == "couponToFeedBack" {
if let vc = segue.destination as? CouponFeedbackVC {
print(brandName)
vc.brandName = self.brandName
}
}
}

在 CouponFeedbackVC.swift 中

var brandName: String!
override func viewDidLoad() {
super.viewDidLoad()
print("viewDidLoad")
print(brandName)
}

override func awakeFromNib() {
print(brandName)
self.view.layoutIfNeeded()
}

控制台日志

nil
viewDidLoad
nil
StayUncle

awakeFromNib() -> viewDidLoad() -> prepare(for segue:)

我没有访问 CouponFeedbackVC 的任何 channel 。

为什么 prepare(for segue: )viewDidLoad()awakeFromNib() 之后被调用?

最佳答案

awakeFromNib 中,您正在引用 self.view 以调用 layoutIfNeeded。这会导致加载 View 并调用 viewDidLoad

如果您从 awakeFromNib 中删除对 self.view.layoutIfNeeded 的调用,则 viewDidLoadprepare(对于:发件人:)。没有理由在 awakeFromNib 中调用 layoutIfNeeded

关于ios - swift 4 : prepare(for segue:) being called after viewDidLoad,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46617760/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com