Обработка различных файлов XIB для облегченной и полной версии - PullRequest
0 голосов
/ 01 августа 2011

У меня есть куча XIB-файлов, которые я использую в полной версии моего приложения.В облегченной версии я хочу иметь возможность загружать некоторые xibs, которые имеют меньше возможностей, что делает его облегченной версией.Все мои viewControllers подключены в IB, и на данный момент на них ссылаются обе цели.

Какой лучший способ скрыть функциональность, кроме простого ее отключения?Я подумал, что совсем другой файл xib будет проще, я не прав?

Редактировать:

Чтобы уточнить, я пытаюсь выяснить, как загрузить другой наконечник для представленияконтроллер в зависимости от версии.Я считаю, что это как-то связано с initWithNib.

Ответы [ 2 ]

2 голосов
/ 01 августа 2011

Используйте цели, вы можете исключить / включить файлы для каждой цели.

Создать цель для Lite, которая не включает в себя некоторые части, которые будет использовать полное приложение, например, загружать NIB, который имеет меньшую функциональность, чем полнаяверсия.

Вы можете даже использовать те же имена для файлов кода (.m) и NIB и включать / исключать через целевое свойство.

Это будет работать, только если у вас есть lite и fullверсия в магазине приложений.

Если вы хотите приобрести приложение, то вам нужно будет сделать то, что предлагает @Jack Humphries.

1 голос
/ 01 августа 2011

Да, вы правы, было бы проще иметь разные XIB. Итак, полная и облегченная версии находятся в одном приложении с покупкой в ​​приложении? Я хотел бы иметь общую домашнюю страницу, а затем использовать NSUserDefaults для ссылки на разные страницы. Например, вот код для кнопки:

-(IBAction)gotogame {

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

Вот как вы устанавливаете NSUserDefaults:

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

Кроме того, если вы хотите, чтобы все было в одном представлении, используйте NSUserDefaults, а если ключ «Закуплено» равен yes, то сделайте следующее:

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

И наоборот. Дайте знать, если у вас появятся вопросы!

...