Notice
Recent Posts
Recent Comments
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Today
Total
관리 메뉴

만재송

[iOS] 세그(Segue) 란? 본문

프로그래밍/iOS with Objective C

[iOS] 세그(Segue) 란?

만재송 2019. 8. 8. 17:02

세그는 스토리보드에서 뷰 컨트롤러 사이의 화면전환을 위해 사용하는 객체입니다. 모달이나 네비게이션에도 세그를 하고 있었구요. 컨트롤러 사이를 연결하면 화살표가 생기는데 그게바로 세그입니다.

그럼 세그를 이용해서 뷰컨트롤러 간의 화면전환을 해보겠습니다. 뷰컨트롤러 2개를 생성하고 버튼2개를 만들어보겠습니다.

그다음 왼쪽 뷰컨트롤러를 control 키를 누른채 오른쪽 뷰컨트롤러에 드래그해서 show 를 클릭해줍니다.

그럼 중간에 세그 화살표가 뜨는데 그걸눌러서 인스펙터창에서 Identifier 값을 적당하게 넣어줍니다.

다음 코드를 작성하겠습니다. ViewController 에 IBAction 메서드를 만들고 아래와 같이 값을 추가해줍니다.

-(IBAction)onTouchedNextButton:(id)sender {
    [self performSegueWithIdentifier:@"WindSegue" sender:self];
}

performSegueWithIdentifier 는 해당 세그 식별자를 가진 뷰컨트롤러로 이동시켜주는 메서드입니다. 마무리로 버튼에 저 메서드를 연결하면 넘어가는 기능은 완성입니다. 이제 되돌아가는 기능을 만들어 주겠습니다. ViewController 에서 IBAction 하나더 만들어줍니다.

-(IBAction)unwind:(UIStoryboardSegue*)segue {
    
}

다음은 스토리보드로가서 오른쪽의 뷰컨트롤를 드래그해서 왼쪽의 뷰컨트롤러가 아닌 Exit 에 넣어줍니다. 그럼 방금만든 메서드 이름이 뜨는데 선택해줍니다.

이렇게 만든 세그도 마찬가지로 Identifier 값을 넣습니다.

마지막으로 뒤로 되돌아가기 버튼 메서드를 만들어줍니다.

- (IBAction)onTouchedPrevButton:(id)sender {
    [self performSegueWithIdentifier:@"UnwindSegue" sender:self];
}

버튼에 이벤트를 연결해주고 실행하면 정상동작하는 모습을 볼 수 있습니다.


참조

Comments