2017-08-10 9 views
0

基本的に私はアプリの開発とXcodeに精通していますが、私はまだ学習の初期段階にあり、何か助けが必要です。私は感情クイズのUIを作成しました.10の質問の最後には、ユーザーがクイズを通して獲得したさまざまな感情と得点を表示するページがあります。私が助けが必要なのは、ユーザーが質問1のボタンをクリックして、結果ページのラベルを1つ増やすことです。私はこれまでにいろいろな方法を試しましたが、それを理解していないようです。 Iveは自分のボタンをそれぞれのビューコントローラにアクションとして、ラベルをそれぞれのビューコントローラにアウトレットとしてリンクしました。別のビューにあるボタンを押してラベルを増やすにはどうすればよいですか?

import UIKit 

class Question1: UIViewController { 

@IBAction func buttonlightgreen(_ sender: UIButton) { 
    print ("light green") 
    sadscoreText += 1 

} 

@IBAction func buttonred(_ sender: Any) { 
    print ("red") 
    angryscoreText += 2 
    happyscoreText += 1 
} 

@IBAction func buttonpurple(_ sender: Any) { 
    print ("purple") 
    annoyedscoreText += 1 
    stressedscoreText += 1 
} 

@IBAction func buttondarkgreen(_ sender: Any) { 
    print ("dark green") 
    relaxedscoreText += 2 
    tiredscoreText += 1 
} 

@IBAction func buttonyellow(_ sender: Any) { 
    print ("yellow") 
    happyscoreText += 1 
} 



override func viewDidLoad() { 

    super.viewDidLoad() 

} 



} 

これはボタンのコードであり、これはラベルのコードです。

import UIKit 

var sadscoreText = 0 
var happyscoreText = 0 
var relaxedscoreText = 0 
var angryscoreText = 0 
var annoyedscoreText = 0 
var tiredscoreText = 0 
var stressedscoreText = 0 

class Results: UIViewController { 

@IBOutlet weak var sadscore: UILabel! 
@IBOutlet weak var happyscore: UILabel! 
@IBOutlet weak var relaxedscore: UILabel! 
@IBOutlet weak var angryscore: UILabel! 
@IBOutlet weak var annoyedscore: UILabel! 
@IBOutlet weak var tiredscore: UILabel! 
@IBOutlet weak var stressedscore: UILabel! 


var sadscoreText: Int = 0 { 
    didSet { 
     sadscore.text = "\(sadscoreText)" 
    } 
} 

override func viewDidLoad() { 
    super.viewDidLoad() 

    sadscoreText = 0 
    happyscoreText = 0 
    relaxedscoreText = 0 
    angryscoreText = 0 
    annoyedscoreText = 0 
    tiredscoreText = 0 
    stressedscoreText = 0 
} 
} 

答えて

1

私はあなたのviewDidLoadメソッドで標識する変更された値を代入する前の値に0を代入しているので、そのが働いていない理由があると信じています。次のように結果がコントローラを表示

を変更します:あなたはこのように必要な動作を実現することができます

import UIKit 

var sadscoreText = 0 
var happyscoreText = 0 
var relaxedscoreText = 0 
var angryscoreText = 0 
var annoyedscoreText = 0 
var tiredscoreText = 0 
var stressedscoreText = 0 

class Results: UIViewController { 

@IBOutlet weak var sadscore: UILabel! 
@IBOutlet weak var happyscore: UILabel! 
@IBOutlet weak var relaxedscore: UILabel! 
@IBOutlet weak var angryscore: UILabel! 
@IBOutlet weak var annoyedscore: UILabel! 
@IBOutlet weak var tiredscore: UILabel! 
@IBOutlet weak var stressedscore: UILabel! 


override func viewDidLoad() { 
    super.viewDidLoad() 

    sadscore.text = "\(sadscoreText)" 
    happyscore.text = "\(happyscoreText)" 
//follow the same for other labels 

//you can set the values again to zero after showing the labels on the screen like this 
    sadscoreText = 0 
    happyscoreText = 0 

} 
} 
関連する問題