2010-08-06 4 views
0

앱을 작성하기 전에 테스트 케이스 인 첫 iPhone App을 작성 중이므로이 플랫폼에서 모든 작업이 수행되는 방법을 배울 수 있습니다. 그래서 표준 ModelViewController 위젯을 사용하고 내 앱을 만들었습니다. 내 UI를 기본보기에 넣고 ViewController.m/.h 파일에 모든 글루 코드를 추가했습니다. 이벤트 처리기, IBOutlet 매핑을 사용하여 내 컨트롤의 상태를 변경했습니다.이 모든 것이 멋지게 작동했으며 너무 오래 걸리지 않았습니다. 해야 할 것.iApp에 내 정보보기를 표시하는 방법

이제 응용 프로그램에 정보 페이지를 추가하고 싶습니다. i 버튼을 메인 페이지에 추가하고 빈 핸들러 인 toggleCreditsOpen :에 매핑 한 다음 내 프로젝트 "info.xib"에 대한 새 뷰를 생성했습니다. 인터페이스 빌더를 열었고 원하는대로 내보기를 설정했습니다. (뷰에서 직접보기보다는 동적으로로드하는 것이 더 좋을지라도 나중에 텍스트를 변경하기가 쉽기 때문에 나중에 걱정할 것입니다. , 그리고 그것은 단지 지역화 된 리소스 파일에서로드하는 것이 쉽기를 바랄뿐입니다.하지만 그건 내 질문이 아닙니다.) 버튼을 내 info.xib에 만들고이를 다른 핸들러 인 toggleCreditsClosed에 매핑했습니다. 그래서 지금은이 두 개의 빈 핸들러를 가지고 : INFO 버튼을 누르면, 다른 하나를 정보 창에서 완료 버튼을 누를 때 사람이 두 함수에서 어떤 일이 일어나는지 설명 할 수있는 경우

- (IBAction) toggleCreditsOpen: (id) sender { 
    // ??? 
} 

- (IBAction) toggleCreditsClosed: (id) sender { 
    // ??? 
} 

, 그럴 게요 나에게이 지침을 사람이 테이블에 대항하여 머리를 부숴 야 할 필요가 없도록하는 방법을 설명하는 곧 나오는 블로그 항목에이 지침을 넣을 것이기 때문에 감사할만한 사람이 아니어야한다. !

답변

0

먼저 정보보기 용으로 별도의보기 컨트롤러 클래스가 있어야합니다 (모범 사례). 정보보기를 표시하는 방법에 따라 질문에 대한 답변이 다릅니다. 애니메이션 :

- (IBAction) toggleCreditsOpen: (id) sender { 
    InfoViewController *info = [[InfoViewController alloc] initWithNibName:@"info" bundle:[NSBundle mainBundle]]; 
    [self presentModalViewController:info animated:YES]; 
    [info release]; 
} 

이 InfoViewController 클래스에 다른 방법을 이동 : 그래서

- (IBAction) toggleCreditsClosed: (id) sender { 
    [self.parentViewController dismissModalViewControllerAnimated: YES]; 
} 

당신이 당신의 정보를보기 컨트롤러에 대한 또 다른 클래스를 만든 가정은 표준 방법은 presentModalViewController를 사용하는 것입니다 InfoViewController.h, InfoViewController.m 그리고 info.xib에서 File 's Owner를 InfoViewController 클래스로 설정해야합니다 (파일 소유자의 관리자에서 ID 탭에 있음). 보기 콘센트와 버튼 동작도 설정하십시오.

+0

조언 해 주셔서 감사합니다. 따라서 새로운 구현 파일을 만들어야한다고 제안 했으므로 필자는 InfoViewController를 .m 파일, .h 파일 및 인터페이스 작성기의 모든 뷰 설정을 복사 한 새로운 .xib 파일과 함께 만들었습니다. – TimeHorse

+0

그런 다음 코드를 제안한 파일로 분할하고 initWithNibName : bundle : 메서드의 주석을 제거하고 번들 매개 변수를 nil로 추가하도록 코드를 수정 한 다음 사용 해보 았습니다. 불행히도 내 응용 프로그램은 InfoViewController를 할당 할 수 있지만 presentModalViewController를 호출하려고하면 : animated : 설명없이 충돌합니다. Ung, 왜 이렇게 혼란 스럽습니까! – TimeHorse

+0

아, 위젯 중 하나의 프레임 워크가 누락되었습니다. 오류를 보려면 gdb를 시작해야했습니다. 재밌 네요. 따라서 몇 가지 테스트를 더 진행시켜 보도록하겠습니다.이 작업을 수행 할 수 있다면 전적으로 크레딧을 줄 것입니다! – TimeHorse

관련 문제