我有一堆xib文件,我在我的应用程序的完整版中使用。在lite版本中,我希望能够加载一些功能较少的xib,从而使它成为精简版本。我的所有viewControllers都连接在IB中,目前被两个目标引用。
除了简单地禁用功能外,隐藏功能的最佳方法是什么?我认为拥有一个完全不同的xib文件是最简单的,我错了吗?
编辑:
为了澄清,我试图弄清楚如何根据版本为视图控制器加载不同的笔尖。我相信它与initWithNib有关。
答案 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];
反之亦然。如果您有任何疑问,请告诉我!