다루두루

블로그 이미지

차케요

공부하면서 정리하는 노트같은 블로그입니다.

스위프트 WebView, Segue, AppDelegate 데이터 공유

아이폰 개발 기초 2018. 3. 23. 16:01

스위프트 [노트정리]

 

1. webView

웹뷰

WebView를 아웃렛 연결해서 변수로 만든 후 viewDidLoad()에서 url을 로드한다. 이때 url은 옵셔널이기 때문에 '언랩' 한 후 URLRequest() 함수에 전달하고 webView.loadRequest() 함수를 이용해서 웹 뷰를 띄울 수 있다.

 

보안

http에 접속할 때는 보안 때문에 info.plist에서 App Transport Security Settings를 추가하고 Exception Domains에 웹페이지 주소값을 넣어준다.

 

 

2. 두 개의 화면 이동(Segue)

세그웨이

두 개의 화면을 이동할 때는 첫 번째 화면에서 두 번째 화면으로 넘어가는 이벤트가 발생하는 객체(버튼)를 우 클릭 한 후 두 번째 화면으로 드래그해서 Action Segue를 연결한다.

 

화면 열릴때

두 번째 화면에서는 앞에서 넘어가는 값을 받기 위한 변수를 선언한 후 화면이 열릴 때 호출되는 viewWillAppear() 함수에서 값을 받는다. 위 코드는 랜덤으로 생성된 RGB 값을 받아서 UIColor()의 인자로 전달한 후 RGB 색을 뽑아오는 내용이며 view의 백그라운드를 해당 색상 값으로 출력하는 내용이다.

 

랜덤 함수

첫 번째 화면에서는 RGB 세 개의 값을 랜덤으로 생성하고 있는데 이 역시 두 번째 화면으로 넘어갔다가 돌아오면 계속 랜덤하게 숫자가 생성되도록 하기 위해서 viewWillAppear() 함수에서 값을 만들어내고 있으며 여기서 랜덤하게 만들어진 숫자들이 두 번째 화면으로 전달되는데 이때 사용하는 녀석이 prepare()이다.

 

데이터 전달

이 prepare()에서는 전환되는 화면에 있는 변수 colorR, colorG, colorB에 각각의 값을 대입하고 있는데 [segue.destination as! '두 번째 뷰 컨트롤러']로 캐스팅 한 후 접근해서 각각의 값을 대입하고 있으며 이 함수를 정의함으로써 다음 페이지에서 이쪽으로 다시 넘어올 수 있다.

 

 

3.AppDelegate 데이터 공유

데이터 공유

두 개의 화면에서 서로 데이터를 전달하는 방법 중 AppDelegate의 변수를 이용하는 방법을 정리해놓는다. 예제에서는 두 개의 화면에서 각각의 textField에 입력한 값들을 저장하면 AppDelegate에 선언한 변수에 저장이 되며 그 값은 다른 화면에서도 똑같이 불러와서 확인할 수 있는 내용이다.

 

AppDelegate

AppDelegate 클래스에 Int형 변수 aaa를 선언한 후 1234로 초기화를 했다. 두 개의 view에서는 이 값을 공유하게 되는데 앱을 실행하면 두 개의 textField 모두에 이 값이 출력되도록 해보자.

 

가져오기

첫 번째 화면에서는 textField를 아웃렛 연결해서 변수를 생성한 후 UIApplication.shqrd.delegate as! AppDelegate를 이용해서 클래스를 가져온 후 화면이 열리는 순간 호출되는 viewWillAppear() 함수를 이용해서 textField에 해당 값을 출력하도록 하고 있다. 즉, 앱을 실행하면 AppDelegate에서 할당 한 1234가 출력될 것이다.

 

데이터 저장하기


다음은 textFiled에 int형 숫자를 입력한 후 [데이터 저장하기] 버튼을 누르면 그 값이 AppDelegate의 aaa 변수에 저장이 되고 두 번째 화면에서도 역시 같은 값을 볼 수 있도록 내용을 정의해본다.

 

키보드 닫기

해당 버튼을 Action 아웃렛 연결을 한 후 해당 버튼을 누르면 숫자를 입력하면서 나왔던 키패드를 감추도록 했으며(resignFirstResponder) 만약 textField에 아무 값도 입력되지 않으면 nil이 올 수 있기 때문에 if let을 사용한 후 어떤 값이 입력됐더라고 AppDelegate에 선언한 변수가 int이기 때문에 캐스팅이 가능한지 알아보기 위해서 역시 if let으로 언랩 한 후 aaa에 해당 값을 저장하도록 하고 있다.

 

두 번째 화면도 똑같이 작성한 후 앱을 실행하면 처음에는 각각의 textField에 1234가 출력됐다가 어느쪽에서 건 임의의 숫자를 입력해서 저장하면 모든 곳에서 해당 값이 출력되는 걸 확인할 수 있다.

실행

이렇게 해서 스위프트 기초 중에서 webview, segue, appDelegate를 이용한 데이터 공유에 대해서 기본 개념을 정리해봤다.

저작자표시 비영리 변경금지
Posted by 차케요

    최근...

  • 포스트
  • 댓글
  • 트랙백
  • 더 보기

카테고리

NEW (900)
아이폰 개발 기초 (7)
취미 (16)
아두이노 (16)
[안드로이드] 어플만들기 (77)
안드로이드 기초 다지기 (61)
슈팅게임 만들기 (4)
[JAVA]자바 공부하기 (48)
C언어 알고리즘 (61)
[Unity3D]유니티3D 강좌 (7)
컴퓨터 (325)
포토샵CS2 강좌 (6)
유용한 프로그램 (244)
리눅스 노트정리 (22)
임베디드 리눅스 (11)
New블로그 (9)
음식의 효능 (4)
일반상식 (56)
HTML 공부 (40)
포토샵 공부 (36)
엑셀 (6)
파워포인트 공부 (19)
노트정리 (38)
일상 (33)
TV영화 (85)
방명록 : 관리자 : 글쓰기
차케요's Blog is powered by daumkakao
Skin info material T Mark3 by 뭐하라
favicon

다루두루

공부하면서 정리하는 노트같은 블로그입니다.

  • 태그
  • 링크 추가
  • 방명록

관리자 메뉴

  • 관리자 모드
  • 글쓰기
  • NEW (900)
    • 아이폰 개발 기초 (7)
    • 취미 (16)
      • 아두이노 (16)
    • [안드로이드] 어플만들기 (77)
      • 안드로이드 기초 다지기 (61)
      • 슈팅게임 만들기 (4)
    • [JAVA]자바 공부하기 (48)
    • C언어 알고리즘 (61)
    • [Unity3D]유니티3D 강좌 (7)
    • 컴퓨터 (325)
      • 포토샵CS2 강좌 (6)
      • 유용한 프로그램 (244)
    • 리눅스 노트정리 (22)
      • 임베디드 리눅스 (11)
    • New블로그 (9)
    • 음식의 효능 (4)
    • 일반상식 (56)
    • HTML 공부 (40)
    • 포토샵 공부 (36)
    • 엑셀 (6)
    • 파워포인트 공부 (19)
    • 노트정리 (38)
    • 일상 (33)
    • TV영화 (85)

카테고리

PC화면 보기 티스토리 Daum

티스토리툴바