iPad Xib 不显示

Posted

技术标签:

【中文标题】iPad Xib 不显示【英文标题】:iPad Xib not showing 【发布时间】:2012-10-02 10:31:35 【问题描述】:

我的 iPhone 应用程序的根控制器是内置代码,我现在正在使应用程序通用并想要链接 iPad Xib。问题是 iPhone 屏幕仍然加载而不是 ipad xib

我的家庭控制器被命名为IChomeContoller.h 和 m

到目前为止:

    添加了 iPad xibIChomeContoller~ipad.xib

    在 IB 中将其设置为我的班级 IChomeContoller

    new referencing outlet连接到IB中的文件所有者

我也在 appdeleage 表单 this 示例中的代码中尝试过,但仍然没有发生

我其他的屏幕都是用xibs搭建的,发现ipad xib没问题

【问题讨论】:

看看我在这篇文章中的回答,我认为是同样的原因:***.com/questions/11384968/… 【参考方案1】:

在 Xcode 中单击您的项目并选择您的目标(应该是底部的)。在那里,如果它是一个通用应用程序,您应该会看到一个用于 iPhone 和 iPad 的主屏幕 Xib 的下拉框。为 iPad 选择一个不同的,应该可以解决问题。

编辑

好的,试试这个:

在您的主视图控制器中,由您的 appdelegate 在 init 方法中初始化的控制器:

- (id)init 

    if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPad) 
        self = [super initWithNibName:@"<Your iPad xib file here>" bundle:nil];
    
    else 
        self = [super initWithNibName:@"<Your iPhone xib file here>" bundle:nil];
    

    if (self) 

        // Everything else you got in your init function
    

    return self;

【讨论】:

听起来很有希望,但我得到一个错误`这个类与键视图的键值编码不兼容。'` 取消 xib 中的“view”属性的链接。 谢谢,但仍会加载 iphone 屏幕,如果相关,我没有 iphone 笔尖,我只是将其注释掉。【参考方案2】:

排序

 - (id)init


[[NSBundle mainBundle] loadNibNamed:@"ICHomeController" owner:self options:nil];

在根视图控制器中添加

【讨论】:

【参考方案3】:

您确定 IChomeContoller~ipad.xib 已添加到您的目标吗?在 Xcode 中,在 Project Navigator(左侧)中选择文件,确认它已在 File Inspector(右侧)的 Target Membership 部分中选中。

【讨论】:

以上是关于iPad Xib 不显示的主要内容,如果未能解决你的问题,请参考以下文章

iOS 7.1 更新后 xibs 显示不正确

视图在 iPad 上不占用全屏

自动调整 iPhone xib 应用程序到 ipad 的大小

我的 XIB 中的两个 UITableViewCells for iPad/iPhone

以编程方式更改不同 iPad 屏幕分辨率上的 .xib 大小

iphone到ipad xib文件更改