我正在使用Apple的新swift语言创建一个应用程序。
应用程序是通用的,因此我用"~"运算符创建了 XIB。比如"MyView~iphone.xib"和MyView~ipad.xib"。但有时,即使我的应用程序在iPad中运行,它也会加载iPhone笔尖。
我已经尝试了很多选择,但仍然面临同样的问题。
人们可能认为这永远不会发生,但我正面临这个问题。
最好看看代码,但我想你的解决方案是这样的
BOOL isPad = (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad);
UIViewController *myViewController = [[UIViewController alloc] initWithNibName:isPad?@"MyView~ipad.xib":@"MyView~iphone.xib" bundle:nil];
尝试在界面生成器中使用大小类,您将不需要iPhone和iPad的不同xib。您可以利用大小类,并在情节提要中为每个大小类设置约束。我建议您观看WWDC 2014:会话216。
我遇到了像这个目标 C 这样的问题,但这可以追溯到 iOS 6 中,我不知道这是否可以解决您的问题,但是
尝试将文件重命名为
MyView~iphone.xib for iPhone
MyView.xib for iPad
而不是
MyView~iphone.xib
MyView~ipad.xib
我建议您使用Size类,因为它是面向未来的。