오늘의 주제

1. 뷰 위에 뷰 얹어보기 


열 다섯번째 시간입니다.^^

지난 번까지는 네비게이션 컨트롤러에 대해 알아보고, 주석다는 방법에 대해 좀 알아보았습니다.
요즘들어 너무 바빠서 몸이 다섯개라도 모자랄지경입니다 ㅠㅠ 포스팅도 너무 뜸한거 같아 슬프네요 ㅠㅠㅠ

자 그럼 오늘은 화면을 바꿔보는 방법 중에 하나인 뷰 얹고 없애기를 한 번 해보도록 할게요~
스따뚜~~~~~~~~~~~~


# 새로운 프로젝트 생성

지난 번 까지는 iOS5에는 최적화되지 않은 코드였습니다. 물론 최적화되지 않은 코드들에 대한 설명은 거의 하지 않았으니 헷갈릴까 걱정하실 필요는 없습니다용 ㅎㅎ

일단 새로운 프로젝트를 생성합니다~

Tabbed Application 을 선택합니다~

이 프로젝트로 꽤 오랜시간 포스팅 진행하게 될 듯 합니다 ㅎㅎ


저는 프로덕트 이름을 ChangeViews 라고 해줬습니다!

그리고 여기서 지난번이랑 다른점은 Use Automatic Reference Counting에 체크하는 거예요~ 



짜잔~ 프로젝트가 만들어 졌습니다요 ㅎㅎ


한 번 실행시켜 볼까요?ㅎ

지난 번과 똑같이 두 개의 탭을 가진 탭 기반 어플리케이션이 자동으로 생성되어 있네요 ㅎ



화면 좌측에 네비게이션영역의 ChangViews그룹에서 우클릭 또는 Ctrl+클릭을 하여 New File...을 선택하여 줍니다.



그 후에 ThirdViewController라는 이름의 뷰컨트롤러 하나를 만들어 줍시다.
 


자, 그 후에 FirstViewController.xib 파일로 이동합니다. 그리고 우측 아래쪽에 Objects 중에 View를 살짝 끌어서 First View 위가 아니고 격자모양처럼 표시되어있는 FirstView '바깥'영역으로 끌어옵니다.



그러면 네모칸 안에처럼 view와 view가 서로 포함되지 않게 나오게 됩니다~ 즉, 원래있던 View안에 새로 넣은 View가 포함되지 않게 해야 합니다 ㅎ
그리고 오른쪽 메뉴중에 자 모양으로 생긴 메뉴로 가면 뷰의 크기를 조절할 수 있어요~ 280 * 100으로 만들어줘 봅시다~


속성탭으로 가서 배경색은 검은색으로 바꿔주구요~



Objects에서 Round Rect Button 하나를 쭈욱 끌어옵니다. Title은 Remove로 바꿔보았습니다~ 이 버튼을 누르면 이 뷰가 뿅하고 사라질 때 쓰일거예요 ㅎㅎ


그리고 원래 있던 FirstView쪽에 Add라는 Title을 가진 Round Rect Button 하나를 만듭니다~ 이 버튼은 새로운 뷰를 위에 얹을 때 쓸거구요 ㅎ


이왕 이렇게 된거 숨기기 보이기 버튼도 하나씩 만들어 봅시다~


이제 메소드를 만들어 주어야겠죠?ㅎ
FirstViewController.h 헤더로 옵니다.
아래와 같이 코드를 넣어봅시다~

@property 줄은 새로 만들어진 View랑 연결해 줄 녀석이구요~

그 아래 메소드 네개는 버튼들과 연결해줄 녀석들입니다.


이제 구현파일 FirstViewController.m으로 와서 

@property했으니, @synthesize로 받아주어야겠죠?ㅎ

그 아래 메소드 네개를 구현해 줍니다.

여기서 잠깐! #pragma mark - View Control Methods 라고 써놓은 부분!

이건 말 그대로 마크 해놓는 건데요~

요기 표시해 놓은 부분부터 다음 표시 부분까지는 View Control Method 라고 개발자가 표시해 놓는 겁니다.

요렇게 만들어 놓으면 나중에 코드가 아무리 길어져도 관련 메소드들을 쉽게 찾아 볼 수 있어요^^

어떻게 찾냐구요?

화면 중간 위쪽을 보시면 지금 빨간 네모 만든 부분을 클릭해 보세요~ 다들 눌러보실 것으로 알고 다음 설명은 생략합니다^^ 눌러보시면 답 나오거든요 ㅎ


이제 아까 구현해 놓은 녀석들을 연결해 줄 차례입니다~
File's Owner에서 우클릭 또는 Ctrl+클릭 으로 드래그 앤 드롭으로 새로 만든 View로 끌고옵니다~


Outlets에 onView에 클릭!


정상적으로 연결이 되면 앞에 동그라미가 생겨요~


이제는 반대로 File's Owner에서 오는게 아니라 버튼을 오른쪽버튼 드래그 앤 드롭 합니다. 또는 Ctrl키를 누른 상태에서 드래그 앤 드롭!
 



Add버튼이니까 addView와 이벤트를 연결합니다.


자, 그런데 이 방법 말고 또 다른 방법들을 소개합니다~!
이벤트를 연결하기를 원하는 버튼에서 우클릭! 또는 Ctrl+클릭!
하게되면 아래 그림과 같이 Event와 Outlet 등을 연결할 수 있는 참이 똻!!!!!!!!!!




그러면 자신이 원하는 이벤트 또는 아울렛의 오른편에 보이는 빈 동그라이 있지요?
거기서 누르고 File's Owner쪽으로 드래그 앤 드롭 해봅니다~  버튼은 통사아Touch Up Inside 이벤트를 주로 사용합니다.


그 반대로 File's Owner쪽에서 우클릭 또는 컨트롤 클릭하여 연결해 주는 방법도 있습니다~!


이벤트는 Touch Up Inside로~! 물론 다른거 해보셔도 됩니다 ㅎㅎ 어떤 결과가 나오는지 직접 해보세요^^
이렇게 세가지 방법을 소개해 드렸습니다~ 이 세 방법중에 편한 방법을 골라서 쓰시면 될 것 같네요 ㅎ


자, 정상적으로 다 연결되고 난 후에 File's Owner를 우클릭 했을 때 뜨는 창의 모습니다.
전부 잘 연결 되셨나요?^^


자, 제대로 다 되셨으면 실행시켜 봅시다~

과감히 Add버튼을 클릭!!
 

오이잉??
창이 지멋대로 이상한데 붙어버리네요 ㅎㅎ
제대로 잘 붙도록 조정해 줘야겠네요~


자 FirstViewController.m 구현파일로 이동합니다~

addView 메소드에서 한 줄을 더 추가해 줍니다~


자~ 다시 실행~~


이쁘게 잘 나오나요?ㅎㅎ



자, 그럼 여기서 동작을 잘 살펴봅니다~!

Add버튼으로 화면 위에 붙인 녀석은 Remove로도 화면에서 없어지고, Hide로도 없어집니다! 그쵸?

그런데 Hide로 없어진 녀석은 Add해도 다시 나타나질 않습니다~

그리고 Remove로 없애고 나서 Show해도 안나타 납니다!!

오이잉??? 도대체 왜 이런일이???

똑같이 화면에서 없어지고 나타났는데, 동작이 될때가 있고 안될때가 있다???

애매~~~~~~합니다잉~~~~~~

자, 잘 생각해 봅시다용 ㅎㅎ

아까 작성해둔 코드를 보게 되면

addView: 메소드 안에는

addSubview: 라는 메소드가 들어가 있습니다.

이말인 즉슨, 어떠한 view위에 sub(하위) view를 추가하겠다.

말 그대로 '새로운 하위 뷰를 얹어넣겠다' 라는 뜻이겠죠?

하지만 showView: 메소드 안에는 setHidden: 이라는 메소드가 사용된 것을 보게 됩니다.

말 그대로 '숨기지 않겠다!' 이런 뜻이겠죠? 



자, 다시 생각해 봅니다!

addSubView는 원래 없는 녀석이 새롭게 뷰 위로 얹혀진다는 것을 알게 됩니다!
하지만, Hidden은 말 그대로 투명으로 없어져 있어서 눈으로만 안보일뿐 원래 있는 녀석이 보이게 되는 것 뿐입니다!


그 반대로 생각해 봅니다~

removeFromSuperview메소드는 있던 녀석을 뷰 위에서 아예 없애버는 것이구요,

hidden해버리면 우리 눈에만 안보이고 뷰 위에 계속 얹혀있는 상태가 되는 겁니다.


그렇기 때문에 add버튼보다 show버튼을 먼저 누르게 되면, 새로운 뷰가 얹혀져 있지 않은 상태이기 때문에 화면에 나타나지 않게 되는 것이고,

hidden으로 숨겨놓고 add해버리면, 이미 화면위에 얹혀져 있기 때문에 프로그램은 이미 얹혀져 있고 보이지만 않는 것을 다시 얹을 필요가 없으므로, 그상태 그래도 놔두게 됩니다. 즉, 우리 눈에는 보이지 않아도 컴퓨터는 위에 얹혀져 있다는 것을 알기 때문에 동작하지 않는 것입니다.

이해 가시나요?

여튼, 상황과 때에 따라서 이렇게 뷰를 얹고 없애고 보이게 하고 안보이게 하고... 이런식으로 컨트롤 할 수 있다는 것을 간략히 보여드렸습니다~!

다음 번에는... 또 뭘 해볼까요?ㅋㅋ

아직 할것은 태산인데 말이죠 ㅎㅎㅎ

댓글 남겨주세요~!

by yagom

p.s 제 포스팅을 RSS 피드로 받아보실 수 있습니다.

RSS Feed 받기   


↓↓↓저 열심히 썼는데 추천 한방 꾹 눌러주고 가시는 건 어떨까요? ^~^ 사랑합니다~ ↓↓↓
Posted by yagom

댓글을 달아 주세요

  1. 이전 댓글 더보기
  2. 현준이빵 2012.10.14 01:03  댓글주소  수정/삭제  댓글쓰기

    즉, 원래 있던 View와 새로 띄운 View와 상호작용이 안돼나요?;

    죄송합니다 뎃글 한번에 안달아서; 집컴퓨터가 이상해서 확인이 안눌지네요;

  3. asrada 2012.10.27 01:51  댓글주소  수정/삭제  댓글쓰기

    정말좋은강좌...!!

    시간가는줄 모르겠네요ㅎㅎ

    정말 또 잘보고 갑니다!!

  4. Karl 2012.11.07 16:06  댓글주소  수정/삭제  댓글쓰기

    바쁘신 와중에 죄송하지만 질문 하나 드려도 될까요..?
    야곰님 강좌를 처음부터 쭈욱 보면서 따라하고 있는데요
    야곰님이 강좌에서 쓰시는 Xcode 버전이 4.2맞죠~?
    제가 snow leopard로 개발을 진행하고 있는데 사정상(앱스토어 연결이 안되요 ㅠㅠㅠㅠㅠㅠㅠㅠ)
    Xcode를 4.0을 쓰고 있습니다...

    처음부터 강좌를 따라하다보니 강좌와 다른 부분이 꽤 많이 있더라구요..
    그래서 어느 정도 고쳐가면서 제작중인데 이번 강좌는 실행이 잘 안되네요... ㅜㅜ
    Remove를 누르고 다시 Add를 누르면 초록색 바탕에

    Thread 1: Program received signal: "EXC_BAD_ACCESS"

    가 출력되고 멈춰버리네요 ㅠㅠㅠ
    저건 무슨 에러인가요...? ㅜㅜ 찾아봐도 잘 안나와서
    죄송하지만 이렇게 여쭤봅니다 ㅜㅜ

    • Favicon of https://blog.yagom.net BlogIcon yagom 2012.11.08 07:39 신고  댓글주소  수정/삭제

      안녕하세요 Karl님~!
      방문해 주셔서 고맙습니다 :)
      말씀하신 내용은 Xcode 버전과는 별개의 문제 같아요^^
      여튼 해결방안을 생각해 보자면... 제 생각에는 버튼에 메소드가 중첩 연결이 되어있거나 잘못 연결이 되어있을 것 같습니다.
      xib에서 버튼을 오른쪽버튼 클릭하여 메소드가 정상적으로 연결되어 있는지 한 번 꼼꼼히 살펴보시기 바랍니다.
      그게 아니라면 코드상에 무엇인가가 잘못되어 있겠죠^^;

  5. hyung 2012.11.15 16:41  댓글주소  수정/삭제  댓글쓰기

    야곰님 안녕하세요! 야곰님이 게시해주신 화면전환게시물 4개를 다 읽고 해봐도 안되는게 있어요 ㅠㅠ
    죄송하지만 혹시 시간되실때 한번 읽어주세요 ㅠㅠ
    음 조금 설명을 드리자면..
    A라는 뷰에 카메라(B라고 말할게요)로 갈 수 있는 버튼이 있어요.
    그 버튼을 눌러서 B로 왔어요
    B는 그냥 카메라가 아닌, 저번에 야곰님이 가르쳐주셔서 만든 커스텀 카메라가 있어요
    거기에 옵션뷰로 이동하는 "버튼"이 있는데 이녀석이 도통 말을 듣지 않네요
    웃긴건요 다른뷰에서 그 함수를 쓰면 잘 알아 듣는데 꼭 카메라에서 쓰면 아무 반응이 없네요
    제 생각에는 처음에 [self.view addSubview.onView]에서 맨 앞에 view가 A뷰라서 안되는거 같은데
    카메라 고유 view포인트라던가 있나요 ㅠㅠ.. 정말 오늘 7시에 출근해서 지금까지 못해가지궁..
    진짜 어떻게든 해보려했는데 너무너무 힘드네요 ㅠㅠ

    쉽게 정리 하자면 A->옵션뷰 로는 가지는데 B->옵션뷰 는 아무 반응이 없어요! 제 생각은 처음에 뷰를 못잡아서 그런거 같은데
    야곰님 의견을 들려주세요 ㅠㅠ

    • Favicon of https://blog.yagom.net BlogIcon yagom 2012.11.15 17:36 신고  댓글주소  수정/삭제

      :) 안녕하세요 hyung님~
      [self.view addSubview] 가 아니라

      B가 뷰컨트롤러라면 [B.view addSubview:]
      를 사용하시면 되고,
      B가 뷰라면 [B addSubview:]
      하시면 될 것 같습니다 ^^

    • hyung 2012.11.15 17:40  댓글주소  수정/삭제

      네 한번 해볼게요! 항상 친절한 답변 감사드립니다 ㅠㅠ

    • Favicon of https://blog.yagom.net BlogIcon yagom 2012.11.15 17:46 신고  댓글주소  수정/삭제

      별말씀을요:-) 항상 찾아주셔서 고맙습니다 ㅎ

    • hyung 2012.11.16 11:32  댓글주소  수정/삭제

      안녕하세요! 어제 끙끙거리던게 풀렸어요^^
      카메라가 뷰컨트롤러가 안잡혀서 계속 A뷰에 옵션화면이 뜨고 있던 거였어요 ㅠㅠ
      결국 [self dismissModalViewController]로 그냥 그 화면을 지우고 A뷰에 띄우니 되더라구요.. 흑흑 카메라녀석 뷰 이름을 몰라서..

      근데 또 다른문제가 생겨버렸어요..
      옵션뷰에서 카메라로 돌아가려고 하는데, 카메라뷰를 지우고 띄운거기 때문에, 다시 카메라를 실행시켜야 되는데
      함수를 불러도 반응이 없네요.. ㄷㄷ
      다른 Alert같은 함수들은 되는데 이녀석은 무반응..

      -(IBAction)Camera{
      UIPIckerController*********어쩌고저쩌고
      }
      이녀석이 카메라 함수인데 아무리 불러도 반응이 ㅠㅠ

      그냥 카메라 함수 전체를 복사해서 옵션뒤로가거버튼에 그 함수를 넣자니 그건 좀 아닌것 같구요 ㅠㅠ.. 왜 안되는 걸까요

      아.. 참고로 카메라 함수가 있는 파일과 옵션뷰가 있는 파일이 서로 다릅니다. #import해서 불러오려는데.. 흑흑
      [self.cameraModule Camera];이렇게 했는데 안되구요
      [self.cameraModule Alert];이런 메세지띄우는 함수는 되는데.. 뭐가 다른거죠 ㅠㅠ

    • Favicon of https://blog.yagom.net BlogIcon yagom 2012.11.16 15:16 신고  댓글주소  수정/삭제

      흐음... 무슨말씀이신지 잘 감이 안와요 ㅠ_ㅠ
      말로만 들으니 잘 모르겠네요 ㅠㅠㅠ
      에고... 고생이 많으실텐데

    • hyung 2012.11.16 15:42  댓글주소  수정/삭제

      음.. 간단히 말씀드리면요
      OptionView라는 파일에서
      CameraModule파일에 있는 함수를 가져다 쓰려고 하는데

      A(Alert)라는 함수는 불러지는데
      B(Camera)라는 함수는 안불러져요
      둘다 제가 만든 녀석들이구요..
      두 함수 다 CameraModule이라는 파일에 있구요
      OptionView에서 버튼을 누르면
      CameraModule에 있는 카메라 함수를 실행시키려고 했거든요..
      그게 안되네요 ㅠㅠ 근데 웃긴게 Alert함수는 되더라구요.. ㅠㅠ
      진짜 점점 카메라가 싫어지고 있....

    • Favicon of https://blog.yagom.net BlogIcon yagom 2012.11.16 17:36 신고  댓글주소  수정/삭제

      일단 그 메소드 내부에 로그를 찍어서 메소드가 호출이 되는지 확인을 해보는 것이 우선일 것 같구요, 버튼과 확실히 잘 연결이 되어있는지 확인해 보시구요, 그래도 아니라면 카메라를 어떤식으로 불러들이는지 확인을 해봐야 할 것 같습니다 ^^;

    • hyung 2012.11.19 09:17  댓글주소  수정/삭제

      허헛.. 다시 주일의 시작이네요! 야곰님 조언받아 다시 해볼게요^^

    • Favicon of https://blog.yagom.net BlogIcon yagom 2012.11.19 10:25 신고  댓글주소  수정/삭제

      :) 넵 또 새로운 시작이네요~!
      행복한 한 주 되시길 빕니다 ㅎ

  6. hyung 2012.11.19 10:59  댓글주소  수정/삭제  댓글쓰기

    안녕하세요! 요새 야곰님을 매우 귀찮게 하고 있는 형 입니다..
    CameraModule파일에
    -(void)Camera{
    -카메라 실행 소스
    }
    라는 메소드가 있을때

    같은 CameraModule파일에서
    -(IBAction)button{
    [self Camera];
    }
    라고 하면은 실행이 되잖아요?

    그렇다면! OptionView.h라는 파일에서
    #import CameraModule.h
    해서 Camera메소드를 사용해고 싶을때는 어떤식으로 써야 하나요
    [self Camera]라고 하면 오류나와요 ㅠㅠ.. 기본개념이 없어서 죄송합니다..
    어떤 식으로 불러들여야 할지 ㅠㅠ

    • Favicon of https://blog.yagom.net BlogIcon yagom 2012.11.19 10:56 신고  댓글주소  수정/삭제

      안녕하세요 hyung님~
      언제든 저를 괴롭히셔도 상관은 없습니다 ^^;
      self라는 녀석은 자기 자신(객체)를 지칭하는 역할을 하므로 당연히 다른객체에 있는 메소드를 가져다 쓰려고하면 에러가 나겠죠^^
      일단 제 Objective-C 포스팅을 쭉 한번 보면서 기본 문법에 대한 정리를 해 보시고, 클래스 메소드로 만들어 보시면 더 편하게 사용하실 수 있을 것 같습니다.

      아무리 질문을 많이 하고 검색을 많이 해서 당장 해결 할 수 있고 잔기술을 써볼 순 있지만, 기초가 없으면 빠른 시일내로 무너지게 되어있습니다.

      지금 당장은 오래 걸리는 것 같아도 기초부터 차근차근히 다시 배우고 정리하는 것이 가장 빠른 지름길일 것이라고 생각합니다 ^^*

      처음부터 차근차근 기초를 되짚어 보셔요 :)

  7. hyung 2012.12.04 17:12  댓글주소  수정/삭제  댓글쓰기

    야곰님 포스팅엔 정말 중요한게 많아요^^~

    addsub뷰 지우는거 찾다가 검색해보니 역시나 있네요!

    또한번 도움받고 갑니다^^~

    • Favicon of https://blog.yagom.net BlogIcon yagom 2012.12.04 19:45 신고  댓글주소  수정/삭제

      중요하다기 보다는 기초적인 것이겠죠...ㅎ
      물론 기초가 가장 중요하긴 하지만...
      내가 뭔 말을 하고 있는건지 +_+ㅋㅋㅋ

  8. Favicon of http://deoker.com BlogIcon Deoker 2013.01.02 17:03  댓글주소  수정/삭제  댓글쓰기

    좋은 강좌 너무 감사 드립니다 :D

  9. Lewis6 2013.01.03 11:19  댓글주소  수정/삭제  댓글쓰기

    저는 처음에 First View 바깥 쪽에 뷰를 놓고 나서 추가한 뷰의 사이즈 조정이 안되어서 몇시간을 낭비했네요. ㅠㅠ
    처음에 속성탭에서 Simulated Metrics Size 가 Retina 4 Full Screen 로 되어 있는데 그것을 Freeform 으로 변경해서 사이즈 수정을 할 수 있었습니다.
    Xcode 4.5, iOS 6.0 기준입니다 ;;

    • Favicon of https://blog.yagom.net BlogIcon yagom 2013.01.03 20:01 신고  댓글주소  수정/삭제

      안녕하세요 Lewis6님!
      찾아주셔서 정말 고맙습니다 ㅎ
      Xcode가 버전이 변경되면서 좀 바뀐 부분들이 있죠^^;
      부가적인 설명 남겨주셔서 정말 고맙습니다!
      새해 복 많이 받으셔요 ㅎ

    • 난나야 2013.12.19 10:55  댓글주소  수정/삭제

      와 감사합니다^^

      덕분에 사이즈 조절 할 수 있었습니다. ㅎㅎ

    • NanMin 2014.03.23 13:23  댓글주소  수정/삭제

      저두 1시간째 보다 혹시나 해서 댓글보니 역시 저같은분이 계셨네요..감사합니다….ㅎㅎ

  10. hyun 2013.02.10 23:02  댓글주소  수정/삭제  댓글쓰기

    좋은 강좌 감사드립니다~!
    저도 윗분처럼 추가한 뷰의 사이즈 조정이 안되어서 몇 시간 허비했네요..ㅠㅠ
    버전마다 바뀌는 게 많아서 따라하기도 어렵네요..ㅠ

  11. 딴또 2013.03.08 18:52  댓글주소  수정/삭제  댓글쓰기

    이번 강의도 감사합니다.

  12. 퐝칭칭 2013.03.28 14:33  댓글주소  수정/삭제  댓글쓰기

    아 정말 답답한게 다사라지는 곳입니다 여긴 ...... ~,,~
    혼자 공부하면서 얼마나 생고생을 했는데
    정말 감사드립니다 야곰 님 앞으로도 1강부터 지금까지 쭉따라왔는데 너무 좋아요~
    사랑합니다 ㅋㅋㅋㅋ

  13. dklee7206 2013.04.29 21:55  댓글주소  수정/삭제  댓글쓰기

    안녕하세요. 강좌 잘 보고 있는 초보입니다.

    강좌중에 File's Owner에서 검정색 뷰로 땡겨서 onView가 동그라미 생기게 하라고 하셨는데, 안해도 실행은 되는데
    어떤 차이가 있는지 궁금해서요, 안바쁘실때 답변 부탁드립니다.

    dklee7206@naver.com

  14. nari 2013.05.14 16:24  댓글주소  수정/삭제  댓글쓰기

    정주행 하면서 하나씩 다 따라해보고 있는데
    점점 재밌네요^^ 감사합니다~

  15. yimcold@gmail,com 2013.07.23 08:16  댓글주소  수정/삭제  댓글쓰기

    안녕하세요! 이 블로그를 한줄기 빛 처럼 여기며 살아가는 iOS에 매우 초보자입니다.
    덕분에 많은 내용 얻어가고 있습니다.

    두가지 질문드릴게 있는데요

    1.여기에서 thirdViewController파일은 이용하지 않는 것 처럼 보이는데 왜 추가하신 건가요?

    2. 저는 thirdviewController에서 구현한 뷰를 부분뷰 처럼 집어넣고 싶은데 그게 가능 할까요?
    그러니까 현재는 B.xib에서 버튼이 들어있는 부분뷰를 구현해서 히든/쇼/하고 있잖아요~ 그렇다면 A.xib파일에서 구현한 뷰를 B.xib에서 부분뷰로 사용하는게 가능한가요?

    우문이지만 현답해 주실것으로 믿습니다 ^.^
    감사합니다.

    • Favicon of https://blog.yagom.net BlogIcon yagom 2013.07.23 09:36 신고  댓글주소  수정/삭제

      ㅎㅎ 안녕하세요~!

      1. 매의 눈을 가지셨군요!! 글쎄요... 제가 왜 안썼을까요 'ㅁ'
      아마 제가 뭔가 해보려다가 안하고 이거만 포스팅 했었나봐요 ㅎㅎㅎ 신경쓰지 않으셔도...ㅎㅎ

      2. 당연히 가능합니다 :) iOS 6 이상이라면 Container View Controller를 활용할 수 있구요, 그 이하 버전이라도 다른 방법으로 가능합니다 ㅎ

      컨테이너 뷰 컨트롤러 예제는 애플 문서에 잘 나와있습니다 :) 참고해 보세요 ㅎ

      http://bit.ly/Vksa9N

      그 이하 버전에서 사용할 수 있는 방법은
      살짝 다른 개념이지만 이 부분을 참고해 보세요.
      http://www.ralfebert.de/tutorials/iosdev/viewcontroller/
      위 예제에서 네비게이션 컨트롤러 대신 지금 사용하고 있는 뷰 컨트롤러 위에 예제와같이 뷰 컨트롤러를 올리고 클래스(ThirdViewController)를 지정해 주면 됩니다 :)

  16. yimcold@gmail,com 2013.07.23 19:51  댓글주소  수정/삭제  댓글쓰기

    와!!!!!!!
    주신 아이디어로 여러문제 해결했습니다!!!
    자주 들를게요. 야곱님 감사합니당!!!!!

  17. Hide 2013.11.10 15:30  댓글주소  수정/삭제  댓글쓰기

    감사합니다

  18. tmsnvl 2014.10.10 10:16  댓글주소  수정/삭제  댓글쓰기

    안녕하세요~!!
    좋은 강좌 잘 봤습니다.
    강좌를 보고 질문이 있는데요~
    지금 현재는
    [self.view addSubview:onView];
    [onView setFrame:CGRectMake(20.0f, 300.0f, 280.0f, 100.0f)];
    으로 좌표를 조정해서 밑에 버튼을 가려놓으셨는데 가려져 있지 않다고 했을때
    밑에 부모뷰의 클릭 이벤트는 어떻게해서 막을수 있나요?

    • Favicon of https://blog.yagom.net BlogIcon yagom 2014.10.10 10:22 신고  댓글주소  수정/삭제

      안녕하세요~
      뷰에 보면 userInteractiveEnable (?) 이라는 프로퍼티가 있을거예요.
      NO로 설정해주시면 이벤트를 받지 않습니다 :)

  19. tmsnvl 2014.10.10 17:32  댓글주소  수정/삭제  댓글쓰기

    앗~!! 빠른 답변 감사드립니다~ㅎㅎ
    제가 질문을 잘못했나봅니다.
    addSubview 로 팝업을 띄우면 팝업 외의 다른 버튼이나 이벤트
    즉 부모뷰의 Add 버튼이나 Show 버튼은 이벤트가 안먹히게 하고 싶습니다.
    팝업 뷰의 Remove, Hide 버튼 이벤트는 되구요
    물론 팝업 뷰가 사라지면 다시 버튼 이벤트가 정상 동작하게 하고 싶구요~

    아직 많이 부족해서 야곰님이 힌트 주신걸로 이렇게 해보니
    [self.view addSubview:onView];
    [self.view setUserInteractionEnabled:NO];

    팝업뷰도 이벤트가 안먹히네요 ㅠㅠ

    • Favicon of https://blog.yagom.net BlogIcon yagom 2014.10.10 18:29 신고  댓글주소  수정/삭제

      음... 버튼들도 기본적으로 UIView의 확장이기 때문에 같은 프로퍼티를 줄 수 있습니다. 버튼들을 IBOutlet으로 연결하고 각자 버튼들을 컨트롤 해줄 수도 있는데, 잘 이해가 가지 않으시면.. 차후 IBOutlet을 연결하는 방법을 터득하신 후 다시 보시면 이해가 되지 않을까 싶습니다 ^^

  20. VSblue 2015.08.25 10:27  댓글주소  수정/삭제  댓글쓰기

    안녕하세요 좋은강좌 잘 보고 있습니다.
    질문이 있는데요

    스토리보드에 view를 드래그래서 띄울려고하는데 자꾸 view가 드래그가 안되네요...어찌해야되죠...

    • Favicon of https://blog.yagom.net BlogIcon yagom 2015.08.25 12:21 신고  댓글주소  수정/삭제

      안녕하세요 :)
      스토리보드에서 View 대신 View Controller를 올려주세요~ 스토리보드에는 뷰 대신 컨트롤러들을 올릴 수 있습니다 :)

  21. 넘나다른것 2016.09.27 13:41  댓글주소  수정/삭제  댓글쓰기

    안녕하세요. 강좌 너무 잘보고 있습니다! 앞에것은 어찌어찌 따라했는데.. navigation controller부터 따라하기가 힘드네요 ㅜㅜ

    이번편은
    view를 만들어서 File's owner에서 드래그했는데 onView가 안떠요...ㅠㅠ

    그 전에는 스토리보드에서 view controller로 만들었었는데 그것도 안되서 다시 해본 거거든요 ㅠㅠ
    xcode가 너무 바뀌어서 따라하기 정말 힘드네요 ㅠㅠ 도와주세요 ㅠㅠ

    • Favicon of https://blog.yagom.net BlogIcon yagom 2016.10.01 18:29 신고  댓글주소  수정/삭제

      안녕하세요 넘나다른것님!

      iOS 버전이 많이 바뀌어서 해당 내용들은 많이 사라지거나 바뀌었고, Xcode 또한 변화가 많았습니다. 초보자의 입장에서 요즘 이 튜토리얼을 제대로 따라하기에는 무리가 있습니다 ㅠ_ㅠ 최신의 좋은 예제들을 따라해 보심이 어떨까 합니다.

      많은 도움을 드리지 못해 죄송합니다.