Swift 如何使用uistepper将segue数据传输的值相乘
所以我遇到了一个问题,我想知道如何使用segue数据传输的值来实现这一点。我希望能够使用我的数据传输值作为原始值,并且仅当步进器值更改时,该值才会更改 例如,当步进值增加时,我的原始值是5,10,15,20,25。。。以此类推,当它减少时也是一样。我该怎么做呢 这是我的数据传输函数: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
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
}