2016-06-29 9 views
0

私は単純なカートビューコントローラに追加しました。それはあなたが注文したい製品を含んでいて、ユーザーが別の製品を追加したときに製品リストが更新されたので、viewWillAppearを使用します。私はテーブルビューを使用して商品リストを保存します別のビューコントローラに移動すると常にデータが表示され、更新されます

と私は小計を持っています。値はすべての製品価格の合計からです

に移動して再びカートビューコントローラに追加すると、価格が再び合計されます。

ユーザーが商品を追加したり削除したりしなかった場合は、簡単に作成します。サブ合計ラベル値は変更されませんでした。

+0

と呼ばれています。おそらく、値を更新するコードを表示することができ、われわれがより良い解決策を見つけるのを助けることができるかもしれない。 –

+0

viewControllerは常にインスタンス化されていますか? – Antzi

答えて

0

私はので、私はこの

func theTotal(){ 
    subTotal = 0 //here 
    grandTotal = 0 //here 
    for i in 0 ..< cartMenu.count { 
     let isiDishes = cartMenu[i] 
     subTotal += isiDishes.price 
     subTotalLabel.text = "Rp. \(subTotal)" 
     hargaAwal = subTotal 
    } 
    grandTotal = subTotal + tax + deliveryFee 
    grandTotalLabel.text = "Rp. \(grandTotal)" 
} 

と私のviewWillAppear

override func viewWillAppear(animated: Bool) { 
    super.viewWillAppear(true) 
    cartMenu = realm.objects(Dishes) 
    if session != 0 { 
     if cartMenu.isEmpty { 
      print("EMPTY") 
     } else { 
      datePickerView.hidden = true 
      viewErrorLogin.hidden = true 
      tableView.reloadData() 
      buttonAddress.setTitle(dataButton, forState: .Normal) 
      secondButtonAddress.setTitle(secondDataButton, forState: .Normal) 
       theTotal() //here 
      deliveryFeeData() 
      taxData() 
     } 
    } else { 
     viewErrorLogin.hidden = false 
    } 
} 

に、私はリセットのようなサブ合計を計算する機能を持っているviewWillAppear

前に戻って0に変更された値によってそれを解決値の合計が小さいため、最初は数式もリセットされます。値の小計は何も起こらないように計算されます。

0

あなたのコードブロックをviewDidLoadメソッドに移動します。そのコードブロックは、あなたのビューが現れるたびに呼び出されません。それは唯一のビューが表示されたときに、それは明らかに更新されます、あなたがリストを更新するには、 `viewWillAppear`を使用しているとして、まあ際ビュー負荷

iOS Doc

関連する問題