我到处搜索过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
}
}
}
答案 0 :(得分:0)
您需要的行是
self.performSegueWithIdentifier("segueTest", sender: self)
在timer.invalidate
之后加入。它将以编程方式触发segue,这将导致prepareForSegue
函数被执行并将控制权转移到secondViewController。