2022. 6. 2. 12:33ㆍiOS
segus란?
-세그 스토리보드에서 뷰 컨트롤러에서 다른 뷰 컨트롤러로 화면전환을 할때 코드로 구현 할
필요없이 연결을 통해 화면 전환을 구현하는 도구 입니다.
var source: UIViewController -세그에 전환을 요청하는 뷰 컨트롤러
var dsetination: UIViewController - 전환될 목적지 뷰 컨트롤러
var identifier: String? -세그 객체의 식별자
세그 연결 하는 방법
-스토리보드에 뷰 컨트롤러 2개를 만들어 준다.
첫번째 뷰컨트롤러에 버튼을 생성하고 사진과 같이 버튼키에 control 눌러 함께 옆 뷰 컨트롤러에 끌어다 준다.
넘어갈 화면 방법을 선택 해준다
Action Segue 중 show 를 선택
연결 고리가 나타 났다면 연결완료!
func perform() - 뷰 컨트롤러 전환의 수행
-segue 전환이 실행되기 전에 수행되는 메서드
-Data Passing 용도로 많이 쓰임
override fun prepare(for segue: UIStoryboardSegue, sender: Any?) {
guard let nextVC: SecondViewController = segue.destination as? SecondViewController
else { return }
guard let cell: UITableViewCell = sender as? UITableViewCell else {
return === cell 을 누르면 화면으로 전활 할수 있게 하는것
}
nextVC.textToSEt = cell.textLabel?.text == 셀의 텍스트 값을 주는 행위
}
cell 을 누르면 다음 화면으로 전활 될수 있게 Segue를 정의 한 상태다
때문에 touch 한 Cell이 있는지 확인 해야한다.
마지막에 생성한 인스턴스의 프로퍼티 접근을 통해 Cell 의 textLabel.text 값을 보내준다.
show??
화면과 같이 2개의 ViewController 준비하여 First ViewController에 버튼을 추가하여 SenodView에 끌어서 이동합니다.
그리고 show 클릭.
show 는 NavigationStack에 Push를 해줘서 화면을 쌓아주는 것
위의 그림과 같이 스텍 하나하나에 뒤로가기(pop)를 하면 전화 으로 이동하는 방식
// 모달은 첫화면으로 가는 방식이다.
추가적으로 이 동작을 코드로 나타내면
navigationController의 pushViewController에 설정해주면 됩니다~~!
Navigation방식을쓰면 뒤로가는버튼이 자동으로 생겨서 뒤로가는 코드를 따로안해줘도 되요!!
@IBAction func nextPageButtonClick(_ sender: Any) {
guard let nextVC = self.storyboard?.instantiateViewController(identifier: "second") as? SecondViewController else {return}
nextVC.labelText = "첫번째 화면의 텍스트"
self.navigationController?.pushViewController(nextVC, animated: true)
}
present modally
- 사용자의 이목을 끌기 위해 사용하는 화면 전환 기법- 엄밀히 말하면 화면 "전환"은 아니고, 기존화면에서 새로운 화면을 생성하는 방식 (사진 1번 참조)- Modal 로 보이는 화면을 사라지게 하려면 특정 "선택"이 동반 되어야 한다. ( "취소" 또는 "전송" 버튼이 필요로 하다.)
→ 모달은 Navigation Interface 와는 달리 정보의 흐름을 가지고 화면을 이동한다기 보다는 " 이목 " 을 끌어야하는 화면에서 사용
→ Navigation Interface 를 통해 화면을 표현하는 것과는 용도가 많이 다름
→ 그래서 Modal 로 보이는 화면은 되도록 단순 하고 사용자가 빠르게 처리 할 수 있는 내용을 표현하는 것이 좋음
[사진1]
사진과 같이 모달의 화면 구성 과정이다.
'iOS' 카테고리의 다른 글
다른 뷰 컨트롤러와 데이터 주고받기 (0) | 2022.06.09 |
---|---|
화면 전환의 종류 (0) | 2022.06.06 |
인터페이스 빌더에 대해서(IB) (0) | 2022.06.06 |
ios앱의 구조와 코코아 터치 프레임워크 (0) | 2022.06.06 |
xcode 설정 화면 용어 정리 (0) | 2022.06.02 |