0

This is my code to disable buttons on a view controller if an integer is below a certain amount.

if (plancnt.value(forKey: "plancnt") != nil){
        plancnt.set(1, forKey: "plancnt")
    }
if (plancnt.integer(forKey: "plancnt") <= 1) {
        two.isEnabled = false
        three.isEnabled = false
        four.isEnabled = false
        five.isEnabled = false
        six.isEnabled = false
        seven.isEnabled = false
        eight.isEnabled = false
        nine.isEnabled = false
        ten.isEnabled = false
        elleven.isEnabled = false
        twelve.isEnabled = false
        thirteen.isEnabled = false
        fourteen.isEnabled = false
        fifteen.isEnabled = false
        sixteen.isEnabled = false
        seventeen.isEnabled = false
        eighteen.isEnabled = false
        nineteen.isEnabled = false
        twenty.isEnabled = false
    }
    if (plancnt.integer(forKey: "plancnt") <= 2) {
        three.isEnabled = false
        four.isEnabled = false
        five.isEnabled = false
        six.isEnabled = false
        seven.isEnabled = false
        eight.isEnabled = false
        nine.isEnabled = false
        ten.isEnabled = false
        elleven.isEnabled = false
        twelve.isEnabled = false
        thirteen.isEnabled = false
        fourteen.isEnabled = false
        fifteen.isEnabled = false
        sixteen.isEnabled = false
        seventeen.isEnabled = false
        eighteen.isEnabled = false
        nineteen.isEnabled = false
        twenty.isEnabled = false
    }
    if (plancnt.integer(forKey: "plancnt") <= 3) {
        four.isEnabled = false
        five.isEnabled = false
        six.isEnabled = false
        seven.isEnabled = false
        eight.isEnabled = false
        nine.isEnabled = false
        ten.isEnabled = false
        elleven.isEnabled = false
        twelve.isEnabled = false
        thirteen.isEnabled = false
        fourteen.isEnabled = false
        fifteen.isEnabled = false
        sixteen.isEnabled = false
        seventeen.isEnabled = false
        eighteen.isEnabled = false
        nineteen.isEnabled = false
        twenty.isEnabled = false
    }
    if (plancnt.integer(forKey: "plancnt") <= 4) {
        five.isEnabled = false
        six.isEnabled = false
        seven.isEnabled = false
        eight.isEnabled = false
        nine.isEnabled = false
        ten.isEnabled = false
        elleven.isEnabled = false
        twelve.isEnabled = false
        thirteen.isEnabled = false
        fourteen.isEnabled = false
        fifteen.isEnabled = false
        sixteen.isEnabled = false
        seventeen.isEnabled = false
        eighteen.isEnabled = false
        nineteen.isEnabled = false
        twenty.isEnabled = false
    }
    if (plancnt.integer(forKey: "plancnt") <= 5) {
        six.isEnabled = false
        seven.isEnabled = false
        eight.isEnabled = false
        nine.isEnabled = false
        ten.isEnabled = false
        elleven.isEnabled = false
        twelve.isEnabled = false
        thirteen.isEnabled = false
        fourteen.isEnabled = false
        fifteen.isEnabled = false
        sixteen.isEnabled = false
        seventeen.isEnabled = false
        eighteen.isEnabled = false
        nineteen.isEnabled = false
        twenty.isEnabled = false
    }
    if (plancnt.integer(forKey: "plancnt") <= 6) {
        seven.isEnabled = false
        eight.isEnabled = false
        nine.isEnabled = false
        ten.isEnabled = false
        elleven.isEnabled = false
        twelve.isEnabled = false
        thirteen.isEnabled = false
        fourteen.isEnabled = false
        fifteen.isEnabled = false
        sixteen.isEnabled = false
        seventeen.isEnabled = false
        eighteen.isEnabled = false
        nineteen.isEnabled = false
        twenty.isEnabled = false
    }
    if (plancnt.integer(forKey: "plancnt") <= 7) {
        eight.isEnabled = false
        nine.isEnabled = false
        ten.isEnabled = false
        elleven.isEnabled = false
        twelve.isEnabled = false
        thirteen.isEnabled = false
        fourteen.isEnabled = false
        fifteen.isEnabled = false
        sixteen.isEnabled = false
        seventeen.isEnabled = false
        eighteen.isEnabled = false
        nineteen.isEnabled = false
        twenty.isEnabled = false
    }
    if (plancnt.integer(forKey: "plancnt") <= 8) {
        nine.isEnabled = false
        ten.isEnabled = false
        elleven.isEnabled = false
        twelve.isEnabled = false
        thirteen.isEnabled = false
        fourteen.isEnabled = false
        fifteen.isEnabled = false
        sixteen.isEnabled = false
        seventeen.isEnabled = false
        eighteen.isEnabled = false
        nineteen.isEnabled = false
        twenty.isEnabled = false
    }
    if (plancnt.integer(forKey: "plancnt") <= 9) {
        ten.isEnabled = false
        elleven.isEnabled = false
        twelve.isEnabled = false
        thirteen.isEnabled = false
        fourteen.isEnabled = false
        fifteen.isEnabled = false
        sixteen.isEnabled = false
        seventeen.isEnabled = false
        eighteen.isEnabled = false
        nineteen.isEnabled = false
        twenty.isEnabled = false
    }
    if (plancnt.integer(forKey: "plancnt") <= 10) {
        elleven.isEnabled = false
        twelve.isEnabled = false
        thirteen.isEnabled = false
        fourteen.isEnabled = false
        fifteen.isEnabled = false
        sixteen.isEnabled = false
        seventeen.isEnabled = false
        eighteen.isEnabled = false
        nineteen.isEnabled = false
        twenty.isEnabled = false
    }
    if (plancnt.integer(forKey: "plancnt") <= 11) {
        twelve.isEnabled = false
        thirteen.isEnabled = false
        fourteen.isEnabled = false
        fifteen.isEnabled = false
        sixteen.isEnabled = false
        seventeen.isEnabled = false
        eighteen.isEnabled = false
        nineteen.isEnabled = false
        twenty.isEnabled = false
    }
    if (plancnt.integer(forKey: "plancnt") <= 12) {
        thirteen.isEnabled = false
        fourteen.isEnabled = false
        fifteen.isEnabled = false
        sixteen.isEnabled = false
        seventeen.isEnabled = false
        eighteen.isEnabled = false
        nineteen.isEnabled = false
        twenty.isEnabled = false
    }
    if (plancnt.integer(forKey: "plancnt") <= 13) {
        fourteen.isEnabled = false
        fifteen.isEnabled = false
        sixteen.isEnabled = false
        seventeen.isEnabled = false
        eighteen.isEnabled = false
        nineteen.isEnabled = false
        twenty.isEnabled = false
    }
    if (plancnt.integer(forKey: "plancnt") <= 14) {
        fifteen.isEnabled = false
        sixteen.isEnabled = false
        seventeen.isEnabled = false
        eighteen.isEnabled = false
        nineteen.isEnabled = false
        twenty.isEnabled = false
    }
    if (plancnt.integer(forKey: "plancnt") <= 15) {
        sixteen.isEnabled = false
        seventeen.isEnabled = false
        eighteen.isEnabled = false
        nineteen.isEnabled = false
        twenty.isEnabled = false
    }
    if (plancnt.integer(forKey: "plancnt") <= 16) {
        seventeen.isEnabled = false
        eighteen.isEnabled = false
        nineteen.isEnabled = false
        twenty.isEnabled = false
    }
    if (plancnt.integer(forKey: "plancnt") <= 17) {
        eighteen.isEnabled = false
        nineteen.isEnabled = false
        twenty.isEnabled = false
    }
    if (plancnt.integer(forKey: "plancnt") <= 18) {
        nineteen.isEnabled = false
        twenty.isEnabled = false
    }
    if (plancnt.integer(forKey: "plancnt") <= 19) {
        twenty.isEnabled = false
    }

However when i write

plancnt.set(20, forKey: "plancnt")
    plancnt.synchronize()

all of the button except button one are disabled. Im not sure if my greater than/less than signs are wrong or something else, please help.

Oren Edrich
  • 674
  • 1
  • 7
  • 23

3 Answers3

2

Because all you did were to disable buttons, you never reenable them when plancnt changes. And your code gives me a headache. Try something like this:

if plancnt.value(forKey: "plancnt") == nil {
    plancnt.set(1, forKey: "plancnt")
}

let buttons = [one, two, three, ..., twenty]
let cnt = plancnt.integer(forKey: "plancnt")

for i in 0..<buttons.count {
    buttons[i].isEnabled = i < cnt
}
Code Different
  • 90,614
  • 16
  • 144
  • 163
  • This could not work, beacuse a twenty item array cause Xcode to crash. I tried this out my self and it was unable to index. http://stackoverflow.com/questions/13831559/xcode-stuck-on-indexing – Oren Edrich Jan 06 '17 at 09:37
  • 1) Press `Cmd + Shift + K` to clean your project and rebuild 2) If that still doesn't work, give Xcode a hint of what's in your array: `let buttons: [UIButton] = [one, two, ...]` – Code Different Jan 06 '17 at 14:29
  • I have tried to clean the project and i tried to build the project but it is unable to finish either of those. – Oren Edrich Jan 06 '17 at 19:08
0

Do something like this:

var buttons = [one, two, three, four, five, six, seven, eight, nine, ten, eleven, twelve, thirteen, fourteen, fifteen,sixteen,seventeen,eighteen,nineteen,twenty]
        let i: Int = plancnt.value(forKey: "plancnt")
        for index in i..<buttons.count {
            print("\(index)")
            buttons[index].isEnabled = false
        }
Rahul
  • 106
  • 6
  • This could not work, beacuse a twenty item array cause Xcode to crash. I tried this out my self and it was unable to index. stackoverflow.com/questions/13831559/xcode-stuck-on-indexing – Oren Edrich Jan 06 '17 at 09:39
0

In the starboard file unclick the "enabled" button and type this under the viewdidload

if (plancnt.integer(forKey: "plancnt") >= 1) {
        one.isEnabled = true
    }
    if (plancnt.integer(forKey: "plancnt") >= 2) {
        two.isEnabled = true
    }
    if (plancnt.integer(forKey: "plancnt") >= 3) {
        three.isEnabled = true
    }
    if (plancnt.integer(forKey: "plancnt") >= 4) {
        four.isEnabled = true
    }
    if (plancnt.integer(forKey: "plancnt") >= 5) {
        five.isEnabled = true
    }
    if (plancnt.integer(forKey: "plancnt") >= 6) {
        six.isEnabled = true
    }
    if (plancnt.integer(forKey: "plancnt") >= 7) {
        seven.isEnabled = true
    }
    if (plancnt.integer(forKey: "plancnt") >= 8) {
        eight.isEnabled = true
    }
    if (plancnt.integer(forKey: "plancnt") >= 9) {
        nine.isEnabled = true
    }
    if (plancnt.integer(forKey: "plancnt") >= 10) {
        ten.isEnabled = true
    }
    if (plancnt.integer(forKey: "plancnt") >= 11) {
        elleven.isEnabled = true
    }
    if (plancnt.integer(forKey: "plancnt") >= 12) {
        twelve.isEnabled = true
    }
    if (plancnt.integer(forKey: "plancnt") >= 13) {
        thirteen.isEnabled = true
    }
    if (plancnt.integer(forKey: "plancnt") >= 14) {
        fourteen.isEnabled = true
    }
    if (plancnt.integer(forKey: "plancnt") >= 15) {
        fifteen.isEnabled = true
    }
    if (plancnt.integer(forKey: "plancnt") >= 16) {
        sixteen.isEnabled = true
    }
    if (plancnt.integer(forKey: "plancnt") >= 17) {
        seventeen.isEnabled = true
    }
    if (plancnt.integer(forKey: "plancnt") >= 18) {
        eighteen.isEnabled = true
    }
    if (plancnt.integer(forKey: "plancnt") >= 19) {
        nineteen.isEnabled = true
    }
    if (plancnt.integer(forKey: "plancnt") >= 20) {
        twenty.isEnabled = true
    }
Oren Edrich
  • 674
  • 1
  • 7
  • 23