ボタンを押したら他のボタンが消えるようにする Swift
なにやら変なことになったのでメモ代わりに
まずやろうとしていること
ボタンを押したらもう一つのボタンが出たり消えたりする!!
import UIKit class TestViewController: UIViewController { var hiddenbtn:UIButton! override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view. let mybtn = UIButton(frame: CGRectMake(100,100,100,100)) mybtn.backgroundColor = UIColor.blueColor() mybtn.addTarget(self, action: "clickmy:", forControlEvents: .TouchUpInside) hiddenbtn = UIButton(frame: CGRectMake(100,300,100,100)) hiddenbtn.backgroundColor = UIColor.brownColor() self.view.addSubview(mybtn) self.view.addSubview(hiddenbtn) } func clickmy(sender:UIButton){ hiddenbtn.hidden = !(hiddenbtn.hidden) }
以上です.
これで十分ですが変なことになっていたので面白かったので書いておく.
下記は読みづらいと思うし自分用に書いているので読まなくても結構です.
しかしこの時に
var hiddenbtn:UIButton!
をvar hiddenbtn:UIButton?
というふうにしてnilを許容する形にすると
func clickmy
の中でhiddenbtn?.hidden = !(hiddenbtn?.hidden)
こう書いてしまった日にはおしまいです.
Xcodeに怒られて修正しろ!と赤丸の白抜きエラーで != nil
をどんどん付けられます.
なれの果て
((((hiddenbtn?.hidden = !(hiddenbtn?.hidden)) != nil) != nil) != nil)
プロパティを?にしたかったら
hiddenbtn!.hidden = !(hiddenbtn!.hidden)
で書きましょう.