2011-08-01 2 views
0

내 앱의 정식 버전에서 사용하는 xib 파일이 여러 개 있습니다. 라이트 버전에서는 적은 기능을 가진 일부 xib를로드 할 수 있기를 원하므로 라이트 버전으로 만듭니다. 내 모든 viewController는 IB에 연결되어 있으며 현재 두 대상에 의해 참조됩니다.라이트 및 정식 버전 용 다른 xib 파일 처리

단순히 기능을 사용 중지하는 것 외에 기능을 숨기는 가장 좋은 방법은 무엇입니까? 나는 완전히 다른 xib 파일을 갖는 것이 가장 쉽다는 것을 알았 는가, 틀린가?

편집 :

내가 버전에 따라 뷰 컨트롤러에 대해 다른 펜촉을로드하는 방법을 알아 내려고 노력하고있어 명확히하기. initWithNib와 관련이 있다고 생각합니다.

답변

2

대상을 사용하면 대상 당 파일을 제외하거나 포함 할 수 있습니다.

정식 버전보다 기능이있는 NIB를로드하는 것처럼 전체 앱이 제공하는 일부는 포함하지 않는 라이트 대상을 만듭니다.

코드 파일 (.m)과 NIB에 동일한 이름을 사용하고 대상 속성을 통해 포함/제외 할 수도 있습니다.

앱 스토어에 라이트 및 풀 버전이있는 경우에만 작동합니다.

앱을 구매하려면 @Hack Humphries가 제안한 것을 수행해야합니다.

+0

별도의 라이트 및 전체 앱을 사용할 계획입니다. –

+1

그럼 Target으로 가겠다. 다른 NIB와 .m 파일에 동일한 파일 이름을 사용할 수있다. 대상 속성을 통해 포함/제외합니다. – rckoenes

+0

완벽한! 그런 생각조차하지 않았다. 당신의 대답에 그것을 추가하면 나는 당신에게 수표를 줄 것이다. –

1

네, 맞습니다. 내 생각에 다른 XIB가 더 쉬울 것입니다. 따라서 전체 버전과 라이트 버전은 인앱 구매와 동일한 앱에 포함되어 있습니까? 일반 홈 페이지가 있고 다른 페이지로 연결하려면 NSUserDefaults를 사용합니다. 같은 관점에서 모든 것을 원하는 경우, 또한

[[NSUserDefaults standardUserDefaults] setBool:YES forKey"@Purchased"]; 

NSUserDefaults를 사용하여 구입 한 경우 : 여기

-(IBAction)gotogame { 

if ([[NSUserDefaults standardUserDefaults] boolForKey"@Purchased"] == YES) { 
    //go to the entire game XIB 
} 
else { 
    //go to the lite game 
} 

당신은 NSUserDefaults를 설정하는 방법입니다 : 예를 들어, 여기에 버튼의 코드는 키가 예와 같으면 다음을 수행하십시오.

[litePicture setHidden:YES]; 
[fullPicture setHidden:NO]; 

그 반대의 경우도 마찬가지입니다. 궁금한 점이 있으면 알려주세요.

+0

그게 좋은 방법 인 것처럼 보이지만 실제로 "xib"로가는 길을 찾고 있습니다. 보기 컨트롤러 xyz가 있다고 가정하면 xib xyz 또는 xyz lite로로드 할 수있는 방법이 있습니까? –

+0

알다시피, 나는 그것에 대해 생각 해본 적이 없다. 대답을 찾을 수 없으면 두 개의 다른 클래스를 만들고 필요한 코드를 복사합니다. 라이트 버전에 고유 한 것이있을 수도 있습니다. –

관련 문제