倒数计时器变为0(零)时将数据传输到其他视图

时间:2014-10-01 21:46:54

标签: ios swift

我到处搜索过google,youtube,stackoverflow。

我有很多文章展示了如何使用segue传输数据。

点击按钮时,我可以使用segue将数据传输到另一个视图。

当倒数计时器达到0时,我需要将数据(标签文本)传输到另一个视图。

我有一个从5开始的计时器。我通过调用viewDidLoad()块中的函数来启动计时器。

我有另一个函数counting(),我检查计时器何时达到0,当它达到0时,我希望标签文本(myLabel)转移到另一个视图(nextView)。 / p>

我是iOS开发的新手,我已经开始使用Swift语言学习iOS开发(因为它与C#相同)

我以某种方式不理解Apple的文档。

任何帮助将不胜感激,因为我在互联网上找不到解决方案之后发布了这个问题。

第一视图代码:

 import UIKit

class ViewController: UIViewController, UITextFieldDelegate {

    override func viewDidLoad() {
        super.viewDidLoad()

        // Starting Timer
        startTimer()

        // Do any additional setup after loading the view, typically from a nib.
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }

    func startTimer(){
    timer = NSTimer.scheduledTimerWithTimeInterval(1, target: self, selector: Selector("counting"), userInfo: nil, repeats: true)
    timerunning = true
    }

    // Variables

    @IBOutlet var myNameText: UILabel!
    @IBOutlet var myText: UITextField!
    @IBOutlet var timerLabel: UILabel!
    var timercount :Int = 5
    var timerunning : Bool = false
    var timer = NSTimer()



func counting(){

timercount -= 1
timerLabel.text = "\(timercount)"

if(timercount == 0)
{
timerunning = false
timer.invalidate()


// Change view and display myNameText on nextView


}

}

override  func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject!) {
if (segue.identifier == "segueTest") {
var svc = segue.destinationViewController as secondViewController;
svc.toPass = myText.text

}
}
}  

1 个答案:

答案 0 :(得分:0)

您需要的行是

self.performSegueWithIdentifier("segueTest", sender: self)

timer.invalidate之后加入。它将以编程方式触发segue,这将导致prepareForSegue函数被执行并将控制权转移到secondViewController。