2011-02-22 6 views
0

저는 새해 - 미안 해요.하지만 저는 멀티 뷰 아이폰 앱을 실험 중이며, 아래 아이디어가 a) 가능하고 b) 현명한 지 궁금합니다.iphone/ObjC - 인수를 기반으로 뷰를 제거/추가하는 방법? 가능합니까?

나가는보기, 들어오는보기 및 들어오는 클래스와 같은 일부 매개 변수를 기반으로보기를 제거하고 추가 할 수있는 방법을 만들고 싶습니다. 어떤 도움이 많이 감사합니다

[burgerViewController switchViews:viewMainMenu:viewOptions:ViewMainMenu]; 

- 내가 배울 많이 있습니다

- (void)switchViews:(Class)inView:(Class)outView:(Class)inClass{ 

inClass *tempView = [[inClass alloc] 
        initWithNibName:@"inView" bundle:nil]; 


tempView.burgerViewController = self; 

self.inView = tempView; 
[tempView release]; 


[outView.view removeFromSuperview]; 
[self.view insertSubview:tempView.view atIndex:0]; 

} 

가 호출 될 것이다.

마이크.

+0

당신이 어떤 컨텍스트에서 이것을 사용할지 모르겠다.하지만 화면을 시뮬레이션하려고한다면 기존의 컨트롤러 (예 : UINavigationController)를 처리하는 것이 더 낫다. –

답변

1

코드가 잘못되어 Objective-C에서 메서드 이름이 어떻게 작동하는지 오해했습니다.

는 예를 들어, 방법은 현재의 약자로, 그것은 이름 : 당신이 찾고있는 무엇을 아마 아니다

switchViews::: 

. 처럼 보일 것이라고,

replaceView:forProperty:withViewOfClass: 

가 선언 :

더 좋은 이름이 될 수

- (void) replaceView:(UIView *)outView forProperty:(NSString *)propertyName withViewOfClass:(Class)inClass; 

그리고 당신은 다음과 같이 사용합니다 : 목적에 대한 자세한 내용은

Class viewOptions = ...; 
NSString *viewMainMenu = @"..."; 
[burgerViewController replaceView:viewMainMenu forProperty:viewMainMenu withViewOfClass:viewOptions]; 

-C 메소드 이름과 인터리빙 된 인수를 확인하려면 Objective-C Programming Language Reference을 확인하십시오.

+0

많은, 많은 감사합니다. – MickeyW

0

첫 번째 문제는 tempView를 해제 한 다음보기에 삽입하려고 시도하는 것입니다. tempView를 해제하지 마십시오. 기본보기에 삽입하기 위해 그대로 유지하십시오.

관련 문제