将 Int 值从一个 VC 传递到另一个

乔·巴尔加斯

我尝试按照使用字符串值的指南进行操作,但没有那么有用。我正在开发一个有 8 个按钮的应用程序,每个按钮都分配有一个数字,表示在 CountdownVC 中转换为分钟的秒数。当我点击一个按钮并将值分配给var seconds = 0CountdownVC时,我试图传递 Int 值

在 MainVC 中按下按钮时:

@IBAction func oneMinuteBtnPressed(_ sender: Any) {

        let vc = CountdownVC()
        vc.seconds = 60
        performSegue(withIdentifier: "toCountdownVC", sender: self)
    }

我想将分配的值传递给 CountdownVC 使其成为var seconds = 60

import UIKit

class CountdownVC: UIViewController {

@IBOutlet weak var countdownLbl: UILabel!
@IBOutlet weak var startBtn: UIButton!
@IBOutlet weak var pauseBtn: UIButton!
@IBOutlet weak var resetBtn: UIButton!

// Variables
var seconds = 0 // This variable will hold the starting value of seconds. It could be any amount over 0
var timer = Timer()
var isTimerRunning = false // This will be used to make sure the only one time is created at a time.
var resumeTapped = false

override func viewDidLoad() {
    super.viewDidLoad()
    pauseBtn.isEnabled = false

}
func runTimer() {
    timer = Timer.scheduledTimer(timeInterval: 1, target: self, selector: (#selector(CountdownVC.updateTimer)), userInfo: nil, repeats: true)
    isTimerRunning = true
    pauseBtn.isEnabled = true
}
@objc func updateTimer(){
    if seconds < 1 {
        timer.invalidate()
        //TODO: Send alert to indicate "time is up!"
    } else {
        seconds -= 1 //This will decrement(count down) the seconds.
        countdownLbl.text = timeString(time: TimeInterval(seconds)) //This will update the label
    }
}
func timeString(time: TimeInterval) -> String {

    let hours = Int(time) / 3600
    let minutes = Int(time) / 60 % 60
    let seconds = Int(time) % 60
    return String(format: "%02i:%02i:%02i", hours, minutes, seconds)
}

除了 segue 部分,我上面的内容似乎不起作用。任何帮助,将不胜感激。

罗马一号

正如 Quoc Nguyen 指出的那样,您正在为一个永远不会使用的控制器分配一个值。

当您调用 时performSegue,这将实例化一个与您创建的 vc 不同的 vc。

如果要将某些内容传递给故事板创建的 vc,则需要使用以下内容:

@IBAction func oneMinuteBtnPressed(_ sender: Any) {
        performSegue(withIdentifier: "toCountdownVC", sender: self)
}

 // This function is called before the segue
 override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
     // get a reference to the your view controller
     if let nextViewController = segue.destination as? CountdownVC {
        nextViewController.seconds = 60
     }
 }

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何将数组中的数据从一个vc传递到另一个?

Android将2d int数组从一个活动传递到另一个错误

将 int 从一个活动传递到另一个由 defaultValue 引起的问题

如何使用闭包而不是委托将数据从一个VC传递到另一个VC?

如何将 int 值从一个活动传递到另一个活动并在 TextView 中显示?

准备segue函数无法将数据传递到另一个VC Swift,

尝试将图像从从Firebase加载的UICollectionView传递到另一个VC

将数据从 tableViewCell 传递到另一个 VC

将值从一个模态传递到另一个模态

将值从一个函数传递到另一个C ++

将值从一个模板传递到另一个

将值从一个函数传递到另一个函数

单击按钮将值从一个输入传递到另一个

将值从一个函数传递到另一个函数

将值从一个jInternalFrame传递到另一个jInternalFrame

将值从一个对象传递到另一个Java

将值从一个表传递到另一个表

将 Spinner 值从一个片段传递到另一个片段

如何将int值从一个活动传递到另一活动的“文本视图”?

ViewController将Swift从一个VC推到另一个VC然后返回

将int传递给另一个活动

使用jquery将值从一行传递到另一个JSP

无需打开var即可使用segues将数据传递到另一个vc的方法

如何将值从一个窗口传递到另一个 PyQT

将浮点值从一个 servlet 传递到另一个 servlet 时出现 servlet 问题

使用 React 导航 5 将值从一个函数传递到另一个函数

将值从一个SQL查询传递到另一个并使用IF语句确定结果

如何将js值从一个html页面传递到另一个

如何将值传递给对象表从一个表到另一个?