gpt4 book ai didi

ios - 访问其他 ViewController Swift 3 中的变量

转载 作者:行者123 更新时间:2023-11-30 12:29:29 24 4
gpt4 key购买 nike

我有一个我自己似乎无法解决的问题,我有两个 View Controller ,第一个包含三个存储整数的变量。在我的第二个 View Controller 上,我有 3 个 slider ,它们用数字操纵每个 slider 下的标签。

当我单击第二个 View Controller 上的按钮时,我希望这 3 个 slider 中的数字替换在第一个 View Controller 上的三个变量中设置的数字,但当我输入变量名称时,它不会t 显示在第二个 View Controller 中?

有人可以解释一下我可能做错了什么,因为我认为变量是公共(public)的并且可以在整个应用程序中全局访问,但我正在努力找出我做错了什么。

这是我的一些代码:

import UIKit
import AVFoundation

class ViewController: UIViewController {

var timer = Timer()

var softTime = 180
var mediumTime = 300
var hardTime = 600

var chosenTime = 0

我希望通过下一个 View Controller 中的按钮更改softTime、mediumTime 和hardTime:

import UIKit

class SettingsViewController: UIViewController {


@IBOutlet weak var softLabel: UILabel!
@IBOutlet weak var softSliderValue: UISlider!
@IBAction func softSlider(_ sender: Any) {

let currentValue = Int(softSliderValue.value)

softLabel.text = "\(currentValue)"

}

@IBOutlet weak var mediumLabel: UILabel!
@IBOutlet weak var mediumSliderValue: UISlider!
@IBAction func mediumSlider(_ sender: Any) {

let currentValue = Int(mediumSliderValue.value)

mediumLabel.text = "\(currentValue)"

}

@IBOutlet weak var hardLabel: UILabel!
@IBOutlet weak var hardSliderValue: UISlider!
@IBAction func hardSlider(_ sender: Any) {

let currentValue = Int(hardSliderValue.value)

hardLabel.text = "\(currentValue)"

}

@IBAction func setTimesButton(_ sender: Any) {



}


override func viewDidLoad() {
super.viewDidLoad()

// Do any additional setup after loading the view.
}

}

最佳答案

//in Second VC
protocol PassDataDelegte: class {

func your method(first: String, second: String, third: String)
}

weak var delegate: PassDataDelegte?

func youction button() {

delegate?.yourmethod(first, timeString: second, third: date)
}



// in First VC
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if segue.identifier == "DeadlineSegue" {
let dvc = segue.destinationViewController as! YourSecondViewController
dvc.delegate = self
}
}


extension YourFirstViewController: PassDataDelegte {
func sendDateTime((first: String, second: String, third: String) {
print(first)
print(second)
print(third)
}

关于ios - 访问其他 ViewController Swift 3 中的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43762071/

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