【发布时间】:2014-11-13 06:30:04
【问题描述】:
我使用的代码会根据设备显示某个 xib 文件,目前有 3 个 xib,一个用于 iPhone4,一个用于 iPhone5,一个用于 iPad。
从 iOS8 / iPhone 6 开始,由于 xib 不知道要加载什么,因此该应用程序无法在高于 5s 的任何设备上运行;
- (IBAction)btnTapForStart:(id)sender {
fromOtherClass=YES;
if([[UIScreen mainScreen]bounds].size.height == 568)
{
PlayMusicViewController *pmvc = [[PlayMusicViewController alloc]initWithNibName:@"XibForIPhone5" bundle:[NSBundle mainBundle]];
[self.navigationController pushViewController:pmvc animated:YES];
}
else
{
PlayMusicViewController *pmvc = [[PlayMusicViewController alloc]init];
[self.navigationController pushViewController:pmvc animated:YES];
}
[appObject.audioPlayer stop];
}
如果我将 568 的值更改为更高的值,它会起作用,但是有没有办法将它组合起来,例如,高度是 568 或 iPhone6 尺寸或 iPhone 6 加尺寸等?
【问题讨论】:
-
为什么会有多个 xib?只需将一个用于所有设备(可能是第二个用于 iPad)。使用自动布局和约束来正确调整大小和位置。
-
我最初并没有编写代码,只是希望修复它,以便它适用于那些拥有该应用程序并使用 iPhone 6/6 Plus 的人,我可以担心之后改进代码,但是这是一个更紧急的修复...感谢谁也标记了这个答案...
-
那你的问题是什么?你想为 iPhone 6 使用 iPhone 5 xib 还是你有另一个特定于 iPhone 6 的 xib?
-
确实,如果用户有 6 或 6 plus,我只想(暂时)使用 iPhone 5 xib。
-
如果您的应用程序(无论如何现在)不原生支持 iPhone 6,那么就没有什么可做的了。确保您没有添加任何 iPhone 6 启动图像或新的 iOS 8“启动屏幕文件”,并且您的应用程序在 iPhone 6 或 6+ 上运行时会认为它在 iPhone 5 上运行(大小方面)。您不需要任何额外的代码。
标签: ios objective-c iphone