2011-03-12 4 views
0

저는 xcode와 objective-C에 새로운 것이므로 간단한 textRPG를 만들고 싶습니다.xCode - 2 개의 기존 xib 파일 간보기 변경

현재 4 개의 xib 파일로 구성된 문자 작성 프로세스를 만들고 있습니다. 뷰를 전환하는 유일한 방법은 유틸리티 템플릿을 보는 것입니다. 문제는 이제 첫 번째 화면이 두 번째 화면의 위임자가되어 세 번째 화면의 위임자가되는 것입니다. 문자 생성 프로세스가 끝나면 뷰를 닫을 수 없습니다. 관점들.

해결책을 찾았을 때 addSubview 메서드를 찾았지만 프로그래밍 방식으로 정렬하기 위해 새 뷰를 만드는 것처럼 보입니다.

내가 필요한 것은로드 된 xib에서 다른 xib로 전환하는 간단한 방법입니다. 내가 addSubview를 오해했거나 완전히 다른 것을 필요로합니까?

(도움이되는 경우 : 몇 년 동안 VB에서 작업 한 적이 있는데,보기와 관련하여 일종의 개념을 놓친 것을 알아 채기 위해) 미리 감사드립니다. :)

답변

2

@ 조아킴 오케이, 이것이 내가하는 방식입니다. RootViewController라는 클래스가 있습니다 : UIViewContoller, 뷰를 직접 창에 추가합니다. 그런 다음 UIView의 하위 클래스 즉 MyView를 만듭니다. 모든 내 견해는 MyView의 하위 클래스입니다. 나는 또한 나의 모든 견해를 열거한다. 이 같은 모양 (int)를보기 방법 : RootViewController에서 당신은 switchView해야 MYVIEW을 정의 @interface의 RootViewContoller에

-(void) switchView:(myView) view 
    { 
     [_currentView removeFromSuperview]; 

     switch(view) 
     { 
      case titleView: 
      _currentView = [[TitleView alloc] initWithRoot:self]; 
      break; 
      case homeView: 
      _currentView = [[HomeView alloc] initWithRoot:self]; 
      break; 
      default: break; 
     } 
     [self.view addSubview:_currentView]; 
     [_currentView release]; 
    } 

을 * _currentView; TitleView 및 HomeView는 모두 MyView의 하위 클래스이며 공통 메소드 - (id) initWithRoot : (RootViewController *) rvc가 있습니다.

뷰를 전환하려면 [_rvc switchView : homeView]를 사용하십시오. 희망 사항 :

0

UINavigationController이라고합니다. 아이디어는

입니다. 1) 사용자가 현재 화면을 제출할 때마다 해당 '다음'컨트롤러를 탐색 컨트롤러에 밀어 넣습니다. 보너스 - 캐릭터 생성의 각 단계마다 '뒤로'버튼이 무료로 제공됩니다.

2) 캐릭터를 생성 한 후 스택에서 모든 캐릭터 생성 컨트롤러를 팝합니다.

'보기 전환'등을 시도하기 전에 View Controller Programming Guide for iOS을 읽어보십시오. 당신은 시간과 신경의 톤을 저장합니다.

0

또 다른 아이디어는 인터페이스 빌더를 전혀 사용하지 않는 것입니다. 나는 2 년 전부터 아이폰 앱으로 일해 왔으며, 인터페이스 빌더가 실제로 뭔가를 만들 때까지 시간을 실제로 연장한다는 것을 알게되었다. 자신의 루트 컨트롤러를 만들고 뷰를 탐색하는 데 필요한 논리를 생각하십시오.

4

이 코드를 사용하십시오. 정말 간단하고 잘 작동합니다.

View *view = [[View alloc] initWithNibName:@"xibNameGoesHere" bundle:nil]; 
view.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal; 
[self presentViewController:view animated:YES completion:nil]; 

그러면 다른 xib 파일로 전환되며 두보기는 서로 소유하지 않습니다. 지금 내 게임에서 사용하고 있습니다.

관련 문제