오늘 공부한 내용
- Container view controller
ㄴUISplitViewController
ㄴ UINavigationController
ㄴ UITabBarController- Interface Builder
Container view controller
- 뷰 컨트롤러를 관리하고, 다른 뷰 컨트롤러들을 포함하는 컨테이너 역할을 수행하는 특별한 종류의 뷰 컨트롤러
- 여러개의 자식 뷰 컨트롤러를 관리하면서 앱의 사용자 인터페이스를 구성하고 전환하는데 사용
UISplitViewController // IPad에서 주로 사용되고 마스터-디테일 인터페이스를 구현하는데 사용
// 화면을 분할하여 마스터 목록과 디테일 뷰를 동시에 표시
UINavigationController // 스택 기반으로 뷰 컨트롤러들을 관리
// 네비게이션 기반의 앱을 구성할 때 주로 사용
// 화면을 이동하는 전환 애니메이션과 뒤로 가기 기능을 제공
UITabBarController // 탭 바를 사용하여 여러 화면을 탭 기반으로 전환
// 다양한 탭을 통해 여러 기능을 제공할 때 사용
UIPageViewController // 페이지 형태로 뷰 컨트롤러를 전환하는데 사용
// 페이지 단위로 스와이프하여 페이지를 전환하는 UI를 구현
→마스터 뷰에서 아이템을 선택하고 디테일 뷰에서 해당 아이템의 상세 정보를 보는 등의 작업 수행 가능
pushViewController(_:animated:) // 새로운 뷰 컨트롤러를 스택에 추가
popViewController(_:animated:) // 이전 뷰 컨트롤러로 이동
// UINavigationController 인스턴스 생성
let navigationController = UINavigationController(rootViewController: FirstViewController())
// 루트 뷰 컨트롤러 설정
navigationController.setViewControllers([firstViewController], animated: true)
// 뷰 컨트롤러 Push
navigationController.pushViewController(secondViewController, animated: true)
// 뷰 컨트롤러 Pop
navigationController.popViewController(animated: true)
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
let button = UIButton(type: .system)
button.setTitle("Push View Controller", for: .normal)
button.addTarget(self, action: #selector(pushViewController), for: .touchUpInside)
button.frame = CGRect(x: 200, y: 200, width: 200, height: 100)
self.view.addSubview(button)
}
@objc func pushViewController() {
let newViewController = UIViewController() // 인스터스 생성
newViewController.title = "New View Controller" // 뷰 컨트롤러 타이틀 이름
newViewController.view.backgroundColor = .white // 뷰 컨트롤러 배경색 지정
navigationController?.pushViewController(newViewController, animated: true) // 뷰 컨트롤러 Push 생성
}
Connection 에서 Action 선택
검은 점이 비어있음 ⇢ 연결 해제 된 상태
검은 점 위에 마우스를 가져다대면 연결되어 있는 ui 컴포넌트 표시
storyboard 와 viewcontroller 가 Custom Class 로 연결되었는지 확인
모든 요소들이 연결되어 있는지 노란 느낌표는 없는지 확인(대소문자 구분)
( ui 컴포넌트 우측 클릭 시 연결되어 있는 상태 확인 가능 )
내일 공부 할 내용
- UIKit Framework
쉽지 않다. 남들보다 뒤늦게 시작한 만큼 남들보다 좀 더 노력하자 는 생각으로 공부하고 있지만 남들은 날개 달고 훨훨 날아가는데 나 혼자 진흙탕에서 허우적대는 기분이다. 내가 공부한 내용을 글로 정리하는 것 또한 이렇게 어려울 것이라고 생각하지 못했다. 아무리 내 스타일 대로 정리하려고 해도 참고한 자료를 어느정도 모방하게 되는 것 같다. 그래도 내가 나중에 봤을 때 이해하기 쉽게 적어 놓은것도 없지않아 있어 나중에 나한테 도움이 될 것이라고 의심치 않는다. 오늘도 고생 많았다. 그런데 남들도 똑같이 고생한다. 힘들다고 칭얼대지 말고 좀만 더 고생하자. 내일도 영 차