首页 > 解决方案 > 您如何使用幻灯片实时更新“吸气剂”

问题描述

我在这里遵循了本教程 我用它来创建一个水平页面控制滑块,我愿意承认可能有比这更简单的方法,但这是我目前所处的位置。

我有一个被引用的名为“视图”的 .xib 文件。

var pages : [View] {
        get {
            let page1: View = Bundle.main.loadNibNamed("View", owner: self, options: nil)?.first as! View
            
            page1.colorLabel1.text = "Page 1"
            
            let page2: View = Bundle.main.loadNibNamed("View", owner: self, options: nil)?.first as! View
            
            page2.colorLabel1.text = "Page 2"
 
            return [page1, page2]
        }
    }

当我尝试更新特定页面上的元素时,我遇到了困惑。示例:我在 page1 上有一个文本字段,我希望它的内容可以更改 page2 上的 label.text。但我不知道如何做这样的动作。

我在.xib中试过这个:

 @IBAction func negBeliefTextFieldAction(_ sender: Any) {
        Label.text = TextFeild.text!        
    }

显然,这只会更改当前 page1(幻灯片)的标签,因此它会更改声明操作的幻灯片上的标签,但一旦我在 page2/slide2 上,它就不会影响相同的标签。所以我似乎无法通过按钮操作更改特定页面上的标签。

好吧,我可以...排序,这是我尝试过的另一件事:在 .xib 中添加了这个

 @IBAction func negBeliefTextFieldAction(_ sender: Any) {
Var1 = TextFeild.text!
}

然后我在 VC 中有这个到显示的第一个代码块

let page2: View = Bundle.main.loadNibNamed("View", owner: self, options: nil)?.first as! View
page2.TextFeildLabel.text = Var1

这会将文本字段文本分配给另一个我可以在任何地方引用的 swift 文件中声明的变量。在第二个块中,我引用了该变量,但这不起作用,因为它在最初加载时已经加载了变量内容。意义——它只包含动作之前的变量内容,直到我通过返回到前一个视图控制器刷新视图控制器本身然后返回到带有页面控制器和滑块的视图控制器之前它不会更新内容。

我还对集合进行了简短的试验,但我无法让它们按照我在这里的意图工作,并且这些示例通常在这里应用得过于简单。

标签: swiftsliderxibgetteruipagecontrol

解决方案


推荐阅读