태그: Swift
- This topic has 4개 답변, 3명 참여, and was last updated 4 years, 5 months 전에 by Stacey Dee.
-
글쓴이글
-
-
Stacey Dee참가자
- 글작성 : 1
- 답글작성 : 2
안녕하세요, iOS 초보 입니다!
제 메인스토리 보드에는 두 가지의 버튼이 있어요! ‘오늘’버튼과 ‘내일’버튼.
일단 아웃렛으로 연결해주었습니다.
@IBOutlet weak var todayBtnOutlet: UIButton!
@IBOutlet weak var tmrwBtnOutlet: UIButton!처음 유저가 앱을 실행시키면 ‘오늘’버튼은 enabled, ‘내일’버튼은 disabled 상태이길 바래서 viewDidLoad()에 아래 코드를 삽입했습니다.
override func viewDidLoad() {
super.viewDidLoad()
todayBtnOutlet.isEnabled = true
tmrwBtnOutlet.isEnabled = false
}‘내일’ 버튼을 누르면 ‘오늘’ 버튼이 disabled 된 후 ‘내일’ 버튼이 enabled되고
반대로 ‘오늘’ 버튼을 누르면 ‘내일’ 버튼이 disabled 된 후 ‘오늘’ 버튼이 enabled 되게 하고싶어서 이렇게 적어보았습니다.
부끄럽습니다.. 중구난방 코드입니다.. ㅠ_ㅠ
@IBAction func todayBtn(_ sender: UIButton) {
if tmrwBtnOutlet.isEnabled == true {
tmrwBtnOutlet.isEnabled = false
todayBtnOutlet.isEnabled = true
}
todayBtnOutlet.isEnabled = true
}@IBAction func tmrwBtn(_ sender: UIButton) {
if todayBtnOutlet.isEnabled == true {
todayBtnOutlet.isEnabled = false
tmrwBtnOutlet.isEnabled = true
}
tmrwBtnOutlet.isEnabled = true
}하지만 stack overflow에서는 viewDidLoad() 에서 버튼을 disabled 시켰으므로 더 이상 무얼 할 수 없다고 합니다.
제가 올린 질문의 링크입니다. >>
더 구글링 해보니 저처럼 disabled button을 enabled 하고 싶었던 분은 처음엔 viewWillApper()을 썼지만, 오류가 나서 viewDidLoad()로 바꿔봤더니 된다고 하더라고요! ㅇㅁㅇ?!
그 글의 링크입니다 >> https://stackoverflow.com/questions/41861489/how-to-enable-a-currently-disabled-button-in-swift
초보를 살려주세요 부탁합니다
2020-06-20 오후 9:15 #9365 -
야곰키 마스터
- 글작성 : 37
- 답글작성 : 579
class MyViewController : UIViewController { @IBOutlet var todayButton: UIButton! @IBOutlet var tomorrowButton: UIButton! override func viewDidLoad() { super.viewDidLoad() tomorrowButton.isEnabled = false } @IBAction func touchUpTodayButton(_ sender: UIButton) { todayButton.isEnabled = false tomorrowButton.isEnabled = true } @IBAction func touchUpTomorrowButton(_ sender: UIButton) { todayButton.isEnabled = true tomorrowButton.isEnabled = false } }
위 코드처럼 했는데 제대로 동작하지 않는다는 말씀이신가요?
어떤 문제가 있나요? 버튼이 활성화가 안되는건가요? 문제가 정확히 무엇인지 잘 모르겠습니다.
버튼은isEnabled
프로퍼티를true
로 해주면 다시 활성화가 됩니다.2020-06-20 오후 10:41 #9379-
Stacey Dee참가자
- 글작성 : 1
- 답글작성 : 2
안녕하세요 야곰님!
집필하신 스위프트 책으로 열심히 공부하고있습니다 ^0^
써주신 코드 잘 작동하네요 너무 감사합니다 ♡
2020-06-21 오전 11:38 #9404
-
TTOzzi참가자
- 글작성 : 10
- 답글작성 : 13
버튼이 눌렸을 때 원하는 동작을 하게 하려면 버튼이 enabled 된 상태여야 합니다. isEnabled 공식문서
‘내일’ 버튼의 isEnabled 속성을 false 로 설정해주셨으니 ‘내일’ 버튼을 눌러도 IBAction 은 실행되지 않습니다.
반대 상황을 원하시는 거라면 야곰님의 코드를 참고하시면 되겠네요.
2020-06-21 오전 12:26 #9381 -
Stacey Dee참가자
- 글작성 : 1
- 답글작성 : 2
안녕하세요 TTOzzi님!
링크걸어주신 isEnabled 문서 참고할게요 조언 감사합니다 ♡
2020-06-21 오전 11:40 #9407
-
-
글쓴이글
- 답변은 로그인 후 가능합니다.