【问题标题】:Incorrect Interface appears on iOS Device, but not simulatoriOS设备上出现不正确的界面,但模拟器上没有
【发布时间】:2012-08-16 21:30:11
【问题描述】:

我有一个在模拟器上运行良好的通用应用程序,但是当我将它放在实际设备(4S 和第 3 代 iPad)上时,视图控制器界面(“EditNameViewControlleriPhone”,忽略 iPhone 是名称的一部分这一事实)出现仅作为 iPhone 版本,即使我也有 iPad xib。

这是我如何命名东西的屏幕截图:

我的 SettingViewController 中的一个按钮会打开 EditName 界面。这是他的代码:

-(IBAction)editclass{
    EditNameViewControlleriPhone*vc2 = [[EditNameViewControlleriPhone alloc] init];
    vc2.delegate = self;
    [self presentModalViewController:vc2 animated:YES];
}

-(void)dismiss{
    [self dismissModalViewControllerAnimated:YES];
}

这段代码是错误的还是我遗漏了一些命名约定或者是其他什么?对不起,如果这真的很简单——我是 Xcode 的新手。 谢谢

【问题讨论】:

    标签: objective-c ios xcode ios-simulator ios-universal-app


    【解决方案1】:

    您可以使用以下代码手动加载正确的界面:

    -(IBAction)editclass{
        EditNameViewControlleriPhone *vc2;
        if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone) {
            vc2 = [[EditNameViewControlleriPhone alloc] initWithNibName:@"EditNameViewControlleriPhone_iPhone" bundle:nil];
        } else {
            vc2 = [[EditNameViewControlleriPhone alloc] initWithNibName:@"EditNameViewControlleriPhone_iPad" bundle:nil];
        }
        vc2.delegate = self;
        [self presentModalViewController:vc2 animated:YES];
    }
    

    if 子句检查您当前的设备是 iPad 还是 iPhone。该子句中的初始化程序使用正确的 xib 文件实例化 viewController。


    或者,您可以通过遵循简单的命名方案将其留给系统执行;

    EditNameViewControlleriPhone~iphone.xib 适用于您的 iPhone 版本 EditNameViewControlleriPhone~ipad.xib 为您的 iPad 版本

    这样,您的代码可能会保持原样。


    每当您发现文件在设备或模拟器上不可用时存在差异,反之亦然,通常的原因是大写字母有问题。模拟器通常不区分大小写(取决于您的 OSX 文件系统),设备区分大小写(始终)。


    最后但并非最不重要的一点是,当事情仍然在没有合理解释的情况下仍然出现错误时,构建清理通常会产生奇迹。

    【讨论】:

      【解决方案2】:

      Target下,有一个名为Summary的选项卡,检查你的界面以控制你使用的是正确的界面

      【讨论】:

      • @GregM 使用 Show Project Navigator button 或使用 cmd + 0 快捷键。它会在顶部与您的项目名称相同
      • 摘要选项卡是否只是带有文件夹图标的选项卡?我试图提出的视图控制器的名称似乎是正确的(包括大写)。你可以看到我如何命名的屏幕截图。
      猜你喜欢
      • 2015-12-25
      • 1970-01-01
      • 1970-01-01
      • 2018-12-12
      • 2014-11-07
      • 2023-03-09
      • 1970-01-01
      • 2012-09-21
      相关资源
      最近更新 更多