2012-05-11 3 views
1

하나의보기 (XIB)에서 다른보기로 이동하는 데 단추를 사용하려고합니다. Xcode 4.3.2 및 iOS 5를 사용하고 있습니다. 프로젝트 (단일보기 응용 프로그램)를 만드는 것으로 시작합니다. 그런 다음 Interface Builder에서 버튼을 만들고 헤더 파일에 콘센트를 만들고 .m 파일에 IBAction을 만듭니다. 다음으로, Xcode에서 내 프로젝트 폴더를 마우스 오른쪽 버튼으로 클릭하고 "새 파일"을 선택했습니다. 그런 다음 "Object-C 클래스"를 선택하고 "SecondViewController"라고 명명했습니다. 두 개의 새 파일 "SecondViewController.h"와 "SecondViewController.m"이 작성되었습니다. 그런 다음 Xcode에서 내 프로젝트 폴더를 마우스 오른쪽 버튼으로 클릭하고 "새 파일"을 선택하고 "사용자 인터페이스"옵션에서 "보기"를 선택했습니다.기본보기에서 다른보기로 전환

이제 새보기로 이동하는 데 사용하려는 빈 IBAction (내 단추)이 SecondViewController.xib입니다.

새 XIB 및 .h/.m 파일의 생성이이 시점까지 정확하다면 내 단추를 사용하여 두 번째보기를 표시하는 방법은 어떻게됩니까? 명심하십시오, 나는 초보자 수준에서 여전히 그리고 난 내 주요보기 내 SecondView 사이에 알 수있는 유일한 차이는 헤더 파일에 어떤 도움과 양해 :)

감사 :

홈페이지를 보기 헤더 파일 :

@interface ButtonToNewViewViewController : UIViewController 

두 번째보기 헤더 파일 :

@interface SecondViewController : NSObject 

IBAction를 :

-(IBAction)nextView:(id)sender 
{ 
    // go to new view 
} 

답변

10

이것은 온라인에서 많은 자습서로 다루는 매우 간단한 작업이지만 어쨌든 도움을 드릴 것입니다. :-)

우선, SecondViewController을 만들 때, UIViewController이 아닌 NSObject의 하위 클래스로 만들어야합니다. 따라서 이러한 파일을 사용하여 많은 작업을 수행하지 않는 한 파일을 다시 만들고 다시 만들 수 있습니다. 동시에 Xcode가 생성 프로세스의 확인란을 선택하여 자동으로 xib 파일을 생성하는지 확인할 수 있습니다.

SecondViewController (.h, .m 및 .xib)을 만들었 으면 ButtonToNewViewController.m을 열고 #import "SecondViewController.h"을 파일의 맨 위에 놓습니다. 당신의 방법 nextView:, 당신은 다음 두 번째 뷰 컨트롤러를 변경하려면 다음 두 줄을 사용할 수 있습니다

SecondViewController *second = [[SecondViewController alloc] initWithNibName:@"SecondViewController" bundle:nil]; 
[self presentViewController:second animated:YES completion:nil]; 

몇 가지 간단한 애니메이션, 두 번째 뷰 컨트롤러를 팝업해야한다고. initWithNibName:에 전달하는 문자열의 이름이 .xib-file과 같아야합니다.

그리고 다시 ButtonToNewViewController에 가고 싶은 경우에, 당신은 SecondViewController의 방법이를 사용할 수 있습니다

[self dismissViewControllerAnimated:YES completion:nil]; 

물건을 조금 정리해야한다고.:-)

+1

내가 도움을 주셔서 감사합니다 매우 유사합니다. 내가 말했듯이, 나는 iOS 개발에 익숙하지 않고 온라인에서 "방법"을 검색 할 때 얼마나 쉽게 길을 잃는 지 알고 있습니다. 이것은 완벽했습니다. 나는이 과정을 통해 나를 걸을 시간을내어 주셔서 감사합니다 :) – Skizz

0

다음을 사용하여 xib를 다른 xib로 변경할 수 있습니다.

- (IBAction)showInfo1:(id)sender 
{  
    mySecondViewController *controller = [[mySecondViewController alloc] initWithNibName:@"nameOfMyXib" bundle:nil]; 
    [self setModalTransitionStyle:UIModalTransitionStyleCrossDissolve]; 
    [self presentModalViewController:controller animated:YES]; 
} 
1

이 질문에 돌아 오는 사람들을위한, 다음 구문은 이제

[self presentModalViewController: ] 

교체 아이폰 OS 6으로 사용되지는

[self presentViewController:viewController animated:YES completion:nil]; 
관련 문제