处理精简版和完整版的不同xib文件

时间:2011-08-01 13:41:07

标签: iphone objective-c xcode xib nib

我有一堆xib文件,我在我的应用程序的完整版中使用。在lite版本中,我希望能够加载一些功能较少的xib,从而使它成为精简版本。我的所有viewControllers都连接在IB中,目前被两个目标引用。

除了简单地禁用功能外,隐藏功能的最佳方法是什么?我认为拥有一个完全不同的xib文件是最简单的,我错了吗?

编辑:

为了澄清,我试图弄清楚如何根据版本为视图控制器加载不同的笔尖。我相信它与initWithNib有关。

2 个答案:

答案 0 :(得分:2)

使用目标,您可以为每个目标排除/包含文件。

为lite创建一个目标,该目标不包括完整应用程序所需的某些部分,例如加载功能不如完整版本的NIB。

您甚至可以对代码文件(.m)和NIB使用相同的名称,并通过目标属性包含/排除。

仅当您在应用商店中拥有精简版和完整版时,此功能才有效。

如果您想购买应用,那么您需要做@Jack Humphries建议的事情。

答案 1 :(得分:1)

是的,你是对的,在我看来,拥有不同的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,如果Purchased键等于yes,则执行以下操作:

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

反之亦然。如果您有任何疑问,请告诉我!