#조건문

희희희·2021년 5월 16일
0

앱개발

목록 보기
4/4

앞서 만들었던 NavigationController를 이용해 가벼운 조건문을 이용한 배경색 바꾸기를 만들어보았음.

기존의 로그인화면에서 로그인 버튼을 누르게 되면 배경색을 바꾸게 되는 화면으로 넘어가게 함.

import UIKit

class LoginViewController: UIViewController {

    
    @IBOutlet weak var loginBtn: UIButton!
    
    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view.
        
        //상단 네비게이션 바 숨김 처리
        self.navigationController?.isNavigationBarHidden = true
        
        loginBtn.addTarget(self, action: #selector(moveToMainViewController), for: .touchUpInside)
        
    }
    
    @objc fileprivate func moveToMainViewController(){
        
        print("LoginViewController - moveToMainController() called")
        let mainViewController = MainViewController()
        self.navigationController?.pushViewController(mainViewController, animated: true)
        
    }

}

로그인 버튼을 누르게 되면 pushViewController로 mainViewController로 push. 이는 액션에 관련된 함수이며 viewDidLoad에서 addTarget을 해준 뒤에 사용.

코드만으로 새로운 뷰 컨트롤러를 만들어주고 버튼을 이용해 색을 바꿀 수 있도록 해줌.

import Foundation
import UIKit

class MainViewController: UIViewController {
    
    
    
    
    //제목
    var titleLabel: UILabel = {
        
        let label = UILabel()
        label.text = "메인화면"
        label.textAlignment = .center
        label.font = UIFont.boldSystemFont(ofSize: 50)
        label.textColor = .white

        return label
    }()
    
    var colorBtn: UIButton = {
        let btn = UIButton(type: .system) //system으로하면 클릭했을때 효과가 나타남
        btn.setTitle("배경색 바꾸기", for: .normal)
        btn.setTitleColor(.black, for: .normal)
        btn.titleLabel?.font = UIFont.boldSystemFont(ofSize: 20)
        btn.backgroundColor = UIColor.white
        btn.layer.cornerRadius = 5
        btn.contentEdgeInsets = UIEdgeInsets(top: 5, left: 20, bottom: 5, right: 20)
        btn.addTarget(self, action: #selector(changeBg), for: .touchUpInside)
        
        return btn
    }()

    var isBgOrange: Bool?
    
    //뷰가 생성되었을때
    override func viewDidLoad() {
        super.viewDidLoad()
        
        isBgOrange = true
        
        view.backgroundColor = .orange
        view.addSubview(titleLabel)
        
        titleLabel.translatesAutoresizingMaskIntoConstraints = false
        titleLabel.centerYAnchor.constraint(equalTo: view.centerYAnchor).isActive = true
        titleLabel.centerXAnchor.constraint(equalTo: view.centerXAnchor).isActive = true
        
        view.addSubview(colorBtn)
        
        colorBtn.translatesAutoresizingMaskIntoConstraints = false
        colorBtn.topAnchor.constraint(equalTo: titleLabel.bottomAnchor, constant: 20).isActive = true
        colorBtn.centerXAnchor.constraint(equalTo: view.centerXAnchor).isActive = true
    }
    
    @objc fileprivate func changeBg(){
        print("changeBg called")
        
        if isBgOrange == true {
            view.backgroundColor = #colorLiteral(red: 0.9686274529, green: 0.78039217, blue: 0.3450980484, alpha: 1)
            isBgOrange = false
        } else {
            view.backgroundColor = .orange
            isBgOrange = true
        }
        
    }
}

아래의 @objc함수에서 조건문을 이용해 isBgOrange가 true일 경우엔 색을 바꿔주게 되고, 기존의 색에서 바뀌었기때문에 isBgOrange를 false로 바꿔주었음.


굉장히 기본적인 조건문을 이용한 코드지만 중요하다고 생각한다.


참고

정대리님 Youtube

profile
iOS 어플 개발 연습

0개의 댓글

관련 채용 정보