dismissModalViewControllerAnimated로 모달뷰 만들기 개발 일지

잠깐의 구글링 결과 모달뷰를 띄우는 방법을 UIAlertView로 많이들 하나보다. 근데 몬가 제약이 많은듯 하여 방법을 더 검색해보니 다음의 방법으로 띄울 수 있었다. 다만 디폴트로 화면 전체를 점유하게 되어 있으므로  MyCustomView(UIViewController를 상속함)를 다음과 같이 setting해야 한다.

[MyCustomView setModalPresentationStyle:UIModalPresentationFormSheet];
[2010.7.15] 위의 스타일로 세팅하면 뷰의 크기가 고정이 된다. 그러므로 사용에 제한이 있다. 대신 아래의 것으로 대체하면 크기도 커스텀이 가능하다.

[MyCustomView setModalPresentationStyle:UIModalPresentationPageSheet];


그리고 다음의 코드로 모달뷰를 띄워 주면된다.

[self presentModalViewController:MyCustomView animated:YES];


띄워진 모달뷰에서 다시 아래뷰로 돌아가려면 MyCustomView 내에서 1의 코드를 호출하거나 delegate를 등록해서 2를 호출해도 된다.

1. [self dismissModalViewControllerAnimated:YES];

2. [MyCustomView dismissModalViewControllerAnimated:YES];

주의할 점::: 지금 작업하고 있는 MyCustomView에서 버튼을 두고 만들었는데 각 버튼의 타이틀을 NSString * 지역 변수를 하나 선언해서 setting을 했더니 dissmissModalViewController 호출 시에 앱이 죽는 현상이 있었다. 특별히 어떤 문제인지는 모르겠지만 결국 각각 따로 NSString * 변수 하나씩 setting을 해주고 나니 이 문제는 해결되었다.


핑백

  • 코스모가 느껴져~ : 2010년 내 이글루 결산 2010-12-29 13:55:06 #

    ... ;아이폰/아이패드 펌웨어 받기내 이글루 인기 글 가장 많이 읽힌 글 dismissModalViewControllerAnimated...가장 대화가 활발했던 글 [책]예제로 시작하는 아이폰 개발 ( ... more

덧글

  • 잼난게좋아 2010/12/30 11:18 # 답글

    모달뷰 띄우는 방법은 이것 말고도 있다. 그냥 UIView로 만들어서 띄워줘도 된다. ~_~;

    UIView *view = [[UIView alloc] init];
    ...
    (setting)
    ...
    UIWindow* window = [UIApplication sharedApplication].keyWindow;
    if (!window) {
    window = [[UIApplication sharedApplication].windows objectAtIndex:0];
    }
    [window addSubview:view];
댓글 입력 영역