gpt4 book ai didi

ios - 如何在不使用 segues 的情况下将数据从一个 viewController 传递到另一个?

转载 作者:行者123 更新时间:2023-11-28 07:49:35 25 4
gpt4 key购买 nike

在我的第一个 ViewController 中:

var storyboard = UIStoryboard(name: "Main", bundle: nil)
var controller = storyboard.instantiateViewController(withIdentifier: "backGroundController") as! BackGroundWithContainer
delegate?.myFunction(float: floatItryToPass)

在我的第二个 VC 中:

let whiteView = UIView()
@IBOutlet var TopBarView: UIView!

func takeScrollUpFloat(float: CGFloat) {

print("scrollUpFloatTaker: ", float) //works fine
whiteView.center.y = view.frame.height //bad access error here
TopBarView.center.y = view.frame.height //found nil error here
}

真正的困难在于更改在第二个 ViewController 中定义的值。我如何在不实际调用 segue 的情况下解决这个问题?我知道打开 View 时有无数种方法可以做到这一点,但我必须解决它而无需再次加载第二个 View 。第二个 View 当前正在运行。

最佳答案

解决方法如下

var storyboard = UIStoryboard(name: "Main", bundle: nil)
var secondController = storyboard.instantiateViewController(withIdentifier: "backGroundController") as! BackGroundWithContainer
secondController.passedFloat = floatItryToPass

现在在你的第二个 View Controller 中

var passedFloat: CGFloat!
let whiteView = UIView()
@IBOutlet var TopBarView: UIView!

override func viewDidLoad() {

print("scrollUpFloatTaker: ", float) //works fine
// no bad access error here since your view is loaded, i.e viewDidLoad
whiteView.center.y = view.frame.height
// all your IBOutlet variables also get values by the time viewDidLoad
// is called, so you won't be getting nil for your TopBarView
TopBarView.center.y = view.frame.height //found nil error here
}

第一个

关于ios - 如何在不使用 segues 的情况下将数据从一个 viewController 传递到另一个?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50079090/

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