gpt4 book ai didi

ios - 第一次单击按钮时传递的数据不正确

转载 作者:行者123 更新时间:2023-11-28 12:32:36 25 4
gpt4 key购买 nike

称呼,

我的问题如下,我正在开发的应用程序包含两个 View 。第一个只有两个标记为“幻灯片放映一”和“幻灯片放映二”的按钮。

当我点击第一个按钮时,它会显示第二个幻灯片的信息(由于我是新手),我通过 bool 值选择要选择的幻灯片,如下所示:

var button : Bool = false;

然后:

@IBAction func slideShowOne() {
button = true;
}

@IBAction func slideShowTwo() {
print("clicked button 2");
button = false;
}

最后在 prepareForSegue 中:

override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
let passedPic = segue.destination as! ViewControllerTwo;
if(button == true) {
print(button);
passedPic.picsChosen = sLS1;
}
if(button == false) {
print(button);
passedPic.picsChosen = sLS2;
}
}

让它显示正确信息的唯一方法是单击 say button 1 for btn1 slideshow,返回,然后再次单击 button 1。这是为什么呢,跟swift处理函数调用的方式有关系吗?

旁白:Swift 知识现在总计一周。

编辑:得到它的工作,非常感谢。现在有一个快速的问题,此时我的两个 IBActions 是空的,但由于它们附加了 segues,所以这是必需的,这将是使它们有意义或者仍然能够进行 segues 的最佳方式;我假设 prepare 函数是绝对必须的,否则就没有办法(据我所知)将所需数据发送到我的第二个 VC。

@IBAction func slideShowOne() {
//self.performSegue(withIdentifier: "slideOne", sender: self);
}

@IBAction func slideShowTwo() {

//self.performSegue(withIdentifier: "slideTwo", sender: self);

}

override func prepare(for segue: UIStoryboardSegue, sender: Any?)
{
let passedPic = segue.destination as! ViewControllerTwo;

if(segue.identifier == "slideOne") {
passedPic.picsChosen = sLS1;
} else {
passedPic.picsChosen = sLS2;
}

}

最佳答案

尝试通过 Storyboard将 View Controller 连接到 View Controller - 相同的 ctrl 拖动但整个 View Controller 连接到其他 View Controller 。

提供该 segue 标识符 -> 选择标识符,然后在第四个选项卡上为其提供标识符。

在那之后,在你的一个按钮中,例如:

@IBAction func slideShowOne() {
button = true;
self.performSegue(withIdentifier: "toTheOtherVC", sender: self)
}

你会得到想要的行为。

关于ios - 第一次单击按钮时传递的数据不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41705823/

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