Swift 如何使用uistepper将segue数据传输的值相乘

Swift 如何使用uistepper将segue数据传输的值相乘,swift,double,uistoryboardsegue,nsinteger,uistepper,Swift,Double,Uistoryboardsegue,Nsinteger,Uistepper,所以我遇到了一个问题,我想知道如何使用segue数据传输的值来实现这一点。我希望能够使用我的数据传输值作为原始值,并且仅当步进器值更改时,该值才会更改 例如,当步进值增加时,我的原始值是5,10,15,20,25。。。以此类推,当它减少时也是一样。我该怎么做呢 这是我的数据传输函数: override func prepare(for segue: UIStoryboardSegue, sender: Any?) { if segue.identifier == Constants.Se

所以我遇到了一个问题,我想知道如何使用segue数据传输的值来实现这一点。我希望能够使用我的数据传输值作为原始值,并且仅当步进器值更改时,该值才会更改

例如,当步进值增加时,我的原始值是5,10,15,20,25。。。以此类推,当它减少时也是一样。我该怎么做呢

这是我的数据传输函数:

override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
    if segue.identifier == Constants.Segues.fromEventDetailsToTicketForm {
        guard let user = Auth.auth().currentUser else { return }
        let vc = segue.destination as! TicketFormViewController
        
        vc.ticketHolderName = user.displayName
        vc.costOfEvent = selectedEventCost
        vc.dateOfEvent = selectedEventDate
        vc.navigationItem.title = selectedEventName
    }
}
以下是我的目标vc中的全局变量:

 @IBOutlet weak var nameOfTicketHolderLabel: UILabel!
@IBOutlet weak var nameOTicketHolderTextF: UITextField!
@IBOutlet weak var numberOfGuestsLabel: UILabel!
@IBOutlet weak var dateOfEventLabel: UILabel!
@IBOutlet weak var actualDateOfEvent: UILabel!
@IBOutlet weak var totalCostOfEventLabel: UILabel!
@IBOutlet weak var actualCostOfEvent: UILabel!
@IBOutlet weak var guestNumberCount: UILabel!


var ticketHolderName: String?
var costOfEvent: String?
var dateOfEvent: String?
var nameOfEvent: String?
这是我用来连接所有东西的函数:

  func dataTransferVerification() {
    if let nameToLoad = ticketHolderName {
        nameOTicketHolderTextF.text = nameToLoad
    }
    
    if let costToLoad = costOfEvent {
        actualCostOfEvent.text = costToLoad
    }
    
    if let dateToLoad = dateOfEvent {
        actualDateOfEvent.text = dateToLoad
    }
    
    if let nameToLoad = nameOfEvent {
        navigationItem.title = nameToLoad
    }
}
UIStepper func,我不知道在这里放什么:

@IBAction func guestsCount(_ sender: UIStepper) {
    guestNumberCount.text = String(Int(sender.value))
    
  
    
}

现在我想知道,用我所得到的,如何使用成本值并使其原始,这样当步进器值改变时,原始值永远不会改变。假设数据传输时是$5.00,我只想将$5乘以步进器值,我不希望它改变值。

首先,您需要获得成本字符串的数字版本

在视图控制器的顶部:

private var costDecimal : Decimal = 0
在您称之为“数据传输”的过程中(您可以在segue之前或之后执行此操作,这并不重要):

(摘自)

现在,在步进器中:

@IBAction func guestsCount(_ sender: UIStepper) {
    guestNumberCount.text = String(Int(sender.value))
    //multiply sender.value by the cost that was passed in
    let totalCost = Decimal(sender.value) * costDecimal
}

你被卡在哪里了?想必你知道怎么做一个Uisteper。您可能还知道如何向segue中的新视图控制器发送值。问题是否只是将该值输入到步进器中?你能展示一些代码吗?在我链接的问题中,回答的人有一个全局变量
50
作为
Int
,当我进行数据传输时,我不能使用该值作为全局变量值,这就是我被卡住的地方。我删除了我的代码并尝试了另一种方法,但最终也没有成功。我将在目标vc中添加数据传输代码和全局变量@jnpdxI在代码中根本看不到UIStepper。看起来你需要的只是一个额外的变量来存储$5.00应该乘以多少次。问题是它并不总是$5。我怎样才能使它充满活力?如果我将数据传输值乘以步进器值,它将一直乘以无穷大,它将是10,然后是30,120,600。。。。所以on@jnpdxThe成本正在通过
costOfEvent
传入?它真的是一个
字符串吗?
@IBAction func guestsCount(_ sender: UIStepper) {
    guestNumberCount.text = String(Int(sender.value))
    //multiply sender.value by the cost that was passed in
    let totalCost = Decimal(sender.value) * costDecimal
}