세그에 대해서 (ios 앱개발)

2022. 6. 2. 12:33iOS

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]

사진과 같이 모달의 화면 구성 과정이다.