【发布时间】:2013-04-05 20:36:31
【问题描述】:
抱歉各位,我知道已经有很多类似的问题可用。我尝试了所有解决方案,但没有一个适合我。
我正在使用 Xcode 4.5.2 并为 iphone5/ios6 1> RootViewController5 和所有其他设备 2> RootViewController 使用两个 xib,这两个 nib 文件都有一个ViewController 名为 RootViewController。在两个 nib 文件的文件所有者中,我在自定义类检查器中选择了 RootViewController 类。
现在在 ViewDidLoad 方法中,我尝试像这样加载两个笔尖
if(UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone)
{
CGSize result = [[UIScreen mainScreen] bounds].size;
UIViewController *viewController3;
if(result.height == 480)
{
viewController3 = [[[UIViewController alloc] initWithNibName:@"RootViewController" bundle:nil] autorelease];
}
if(result.height == 568)
{
viewController3 = [[[UIViewController alloc] initWithNibName:@"RootViewController5" bundle:nil] autorelease];
NSLog(@"iphone 5 123");
}
}
我也试过下面的代码
if(UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone)
{
CGSize result = [[UIScreen mainScreen] bounds].size;
RootViewController *viewController3;
if(result.height == 480)
{
viewController3 = [[[UIViewController alloc] initWithNibName:@"RootViewController" bundle:nil] autorelease];
}
if(result.height == 568)
{
viewController3 = [[[UIViewController alloc] initWithNibName:@"RootViewController5" bundle:nil] autorelease];
NSLog(@"iphone 5 123");
}
}
但没有运气。请告知我在哪里弄错了。
谢谢
马尤尔
【问题讨论】:
-
我不确定。为什么要在 viewDidLoad 中实例化控制器?你要把它推到 Nav 或 TabBar 控制器上吗?你能准确描述一下你得到了什么吗?另外 - 只是我的意见 - 但如果你想考虑 iPhone 模型,你最好不要为每个实例实例化一个 VC....这会产生大量代码重复,维护将是一场噩梦.
-
@Alex 其实我想做的是将我的应用程序迁移到 iOS 5 到 iOS 并与 iphone5 的屏幕尺寸兼容。因此,我为 iphone5 创建了单独的 XIB,所以如果它是不同的设备,那么将加载具有不同外观和感觉的不同 XIB。
-
请注意那些希望将其作为副本关闭的人:前两个候选副本是关于命名 .xib 文件以在 iPad 和 iPhone 上自动加载。查看提供的 Apple 链接,他们并没有说这个命名方案适用于 iPhone5,这是这个问题所需要的。如果是这样 -> 不是这些问题的重复。
-
@gaige Brain 和 Nate 我在我的问题开始时提到过,我正在重复这个问题。但事情仍然对我不起作用。
标签: ios objective-c xcode xib