全部,
在xcode中我试图加载不同的nib文件,以防我使用iphone / ipod或ipad。
我有一个包含所有枚举和常量的Define.h文件,所以我想在那里放一种(显然是错误的,因为我不知道该怎么做):
#if IPHONE // <-- can I intercept the Active Executable here ?
#define MY_VIEW @"TableViewIphone.xib"
#else
#define MY_VIEW @"TableViewIpod.xib"
#endif
然后在我的视图控制器中包含Define.h
[[NSBundle mainBundle] loadNibNamed:MY_VIEW owner:self options:nil];
我需要使用设备模拟器进行此操作,有没有办法拦截xcode中的“Active Executable”中的内容并且有一组专门的定义?还有其他更容易的选择吗?
感谢
答案 0 :(得分:1)
您要做的是在运行时中选择适合该设备的xib。
您正在做的是编译时选项,它将设置用于所有设备的xib,这不是您想要的。
我假设您正在制作通用应用,是吗?
我希望设备在我的应用启动时使用我的应用的Info.plist文件中的正确密钥NSMainNibFile~ipad
加载适当的xib。 (例如,我将NSMainNibFile~ipad
设置为MainWindow-iPad
...注意:没有“.xib”位)
另一种方法是使用UI_USER_INTERFACE_IDIOM
宏:
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)
{
// Load iPad xib
}
else
{
// Load iPhone xib
}