2015-08-06 2 views
0

По существу, я хотел бы сохранить выбранный вами пользователь (topbutton или bottombutton), так что, когда пользователь найдет приложение и вернется, их выбор будет сохранен, и им не придется его переделывать.Как я могу использовать NSUserDefaults для сохранения состояния кнопки?

@IBAction func topButton(sender: AnyObject) { 


    var nicebutton = sender as! UIButton 

    nicebutton.enabled = false 

    var nopebutton = nicebutton.superview?.viewWithTag(102) as! UIButton 

    nopebutton.enabled = true 



    let hitPoint = sender.convertPoint(CGPointZero, toView: self.tableView) 
    let hitIndex = self.tableView.indexPathForRowAtPoint(hitPoint) 
    let object = objectAtIndexPath(hitIndex) 



    object.incrementKey("count") 
    object.save() 
    self.tableView.reloadRowsAtIndexPaths([hitIndex!], withRowAnimation: UITableViewRowAnimation.None) 

} 



@IBAction func bottomButton(sender: AnyObject) { 

    var nopebutton = sender as! UIButton 

    nopebutton.enabled = false 

    var nicebutton = nopebutton.superview?.viewWithTag(101) as! UIButton 

    nicebutton.enabled = true 
    let hitPoint = sender.convertPoint(CGPointZero, toView: self.tableView) 
    let hitIndex = self.tableView.indexPathForRowAtPoint(hitPoint) 
    let object = objectAtIndexPath(hitIndex) 
    object.incrementKey("count", byAmount: -1) 
    object.save() 
    self.tableView.reloadRowsAtIndexPaths([hitIndex!], withRowAnimation: UITableViewRowAnimation.None) 
} 

ответ

0

Вы можете просто добавить код ниже и установить состояние кнопки,

NSUserDefaults.standardUserDefaults().setBool(true, forKey: "niceButtonEnabled"); 
NSUserDefaults.standardUserDefaults().synchronize() 

НФА, конечно, вы должны получить, прежде чем показывать кнопки.

if(NSUserDefaults.standardUserDefaults().boolForKey("niceButtonEnabled")){ 
    //enable the button which you selected before 
} 

надеюсь, что это поможет.

Более подробная версия ..

@IBAction func bottomButton(sender: AnyObject) { 

    var nopebutton = sender as! UIButton 

    if let nopeE = NSUserDefaults.standardUserDefaults().boolForKey("nopeButtonEnabled") { 
    //enable the button which you selected before 
     nopebutton.enabled = nopeE 
    }else{ 
     NSUserDefaults.standardUserDefaults().setBool(false, forKey: "nopeButtonEnabled"); 
     NSUserDefaults.standardUserDefaults().synchronize() 
    } 

    var nicebutton = nopebutton.superview?.viewWithTag(101) as! UIButton 
    if let niceE = NSUserDefaults.standardUserDefaults().boolForKey("niceButtonEnabled") { 
     //enable the button which you selected before 
     nicebutton.enabled = niceE 
    }else{ 
     NSUserDefaults.standardUserDefaults().setBool(true, forKey: "niceButtonEnabled"); 
     NSUserDefaults.standardUserDefaults().synchronize() 
    } 
    let hitPoint = sender.convertPoint(CGPointZero, toView: self.tableView) 
    let hitIndex = self.tableView.indexPathForRowAtPoint(hitPoint) 
    let object = objectAtIndexPath(hitIndex) 
    object.incrementKey("count", byAmount: -1) 
    object.save() 
    self.tableView.reloadRowsAtIndexPaths([hitIndex!], withRowAnimation: UITableViewRowAnimation.None) 
    } 
+1

также не забудьте добавить 'NSUserDefaults.standardUserDefaults(). Синхронизироваться()', если вам это нужно сохранены сразу же, в противном случае система решает, когда она будет на самом деле спас – libec

+0

так, то я по существу помещал бы первую строку под переменную nicebutton и имел бы nicebutton.enabled = false inbetween инструкции if? –

+0

Да, вы правы @libec и исправили его. :) – mert

Смежные вопросы