2015-10-11 102 views
-2

我的應用程序有一個按鈕,按鈕使得標籤的順序從5到1(5..4..3..2..1)。我想要的是當數字達到0時再次返回5.我已經嘗試過,但是不起作用。有沒有人有任何提示?當數字= 0時返回數字

@IBOutlet weak var NbrLabel: UILabel! 

var Nbr = 5 
override func viewDidLoad() { 
    super.viewDidLoad() 
    if Nbr == 0 { 
     Nbr == 5 
     NbrLabel.text = "\(Nbr)" 

    } 
} 

@IBAction func ICButton(sender: UIButton) { 
    Nbr -= 1 
    NbrLabel.text = "\(Nbr)" 
} 
+0

該分配應該是'Nbr = 5',刪除雙'='! – luk2302

+0

*「不起作用」* - 然後學習如何調試程序。 –

+0

變量應以小寫字母開頭:'nbr','nbrLabel'。他們上面藍色的原因是語法突出顯示他們認爲他們是類名。 – vacawama

回答

1

這應該工作:

@IBOutlet weak var NbrLabel: UILabel! 

var Nbr = 5 

override func viewDidLoad() { 
    super.viewDidLoad() 
    // Do any additional setup after loading the view, typically from a nib. 

} 

@IBAction func ICButton(sender: UIButton) { 
    Nbr -= 1 

    if Nbr == 0 { 

     Nbr = 5 
    } 

    NbrLabel.text = "\(Nbr)" 
} 

你跟編程開始?

+1

您可能希望在viewDidLoad中保留'NbrLabel.text =「\(Nbr)」',以便標籤在按下按鈕之前獲取一個值。 – vacawama

+0

@DavidSundström,我只留下評論。用戶t4nhpt提供了答案。 – vacawama

+0

感謝您的回答,是的,我是新的:) –

2

應該在IBAction方法中檢查等效於最大數量(在你的情況下爲5)。在viewDidLoad方法中,您應該只設置標籤,並在視圖加載後顯示初始值(如果您的應用程序啓動時有單個視圖應用程序)。嘗試這種變異:

let NbrMaxValue = 5 

class ViewController: UIViewController { 
    @IBOutlet weak var NbrLabel: UILabel! 
    var Nbr = NbrMaxValue 
    override func viewDidLoad() { 
     super.viewDidLoad() 
     // Do any additional setup after loading the view, typically from a nib. 
     NbrLabel.text = "\(Nbr)" 
    } 

    @IBAction func ICButton(sender: UIButton) { 
     --Nbr 
     if Nbr == 0 { Nbr = NbrMaxValue } 
     NbrLabel.text = "\(Nbr)" 
    } 
} 
0

嗯..我知道這有一個公認的答案已經但是倒計數可以被認爲是 - 爲此而使用if語句,爲什麼不只是增加一個計數器

5 - 0 = 5 
5 - 1 = 4 
5 - 2 = 3 
5 - 3 = 2 
5 - 4 = 1 

並使用模數表達式,如 -

var counter = 4 // initial value to start with 

var value = 5 - ((counter + 1) % 5) // execute this line on button press 

注 - 這只是一個示例來演示向後計數而不使用if語句檢查零。