如何使用Xcode 4将.xib文件链接到类文件

已经开始了新的Xcode4下的通用项目。 我的应用程序可以在iPhone和iPad设备上运行,但不适用于iPad设计。 对于MainWindow:MainWindow.xib(iPhone设备)和MainWindow-Ipad.xib(iPad设备),我有2个.xib文件。 但是我的MainView只有一个.xib文件:MainView.xib。

所以我试图为iPad设备创建一个特定的.xib文件:

新文件>用户界面>查看 - >下一步 - >设备系列:iPad - > MainView-iPad.xib - >保存

当然,没有任何连接,没有引用插座,没有任何链接。

我检查我的新的MainView-iPad.xib的每个缩略图,以便将它链接到我的MainViewController类,但没有成功!

我在哪里或如何将它链接到我的MainViewController类? 提前致谢。


user763308给出了正确的答案:

将.xib链接到Xcode4下的类:

  • 打开你的.xib。
  • 在占位符中:选择文件的所有者。
  • 在第三个缩略图:右侧面板的“身份检查员”中,编辑“自定义班级”字段并输入班级名称。
  • 我也然后不得不:

  • 单击对象下的根视图。
  • 点击最后一个标签:“显示连接”。
  • 将“New referencing outlet”拖到“File's Owner”并选择“view”。

  • 你想创建一个新的UIViewController子类,而不是新的UI文件。 这将创建您的.xib以及类文件(.m和.h)。 该模板在Cocoa Touch下。

    想要链接到现有的视图控制器可能不是一个好主意。 如果您遵循MVC(模型 - 视图 - 控制器)设计模式,则可以将数据类和视图控制器分开。 如果可以的话,将事情从您的MainViewController类中移出并移入它拥有的数据类中。 然后为iPad创建另一个视图控制器并使其拥有您创建的数据类的实例。


    在通用应用程序的情况下,将.xib与控制器类的比例设置为2:1并不一定是错误的。 这是我遵循的模式:

    你有你的MainViewController类。 您有2个.xib文件:MainView-iPhone.xib和MainView-iPad.xib。 这两个文件的“文件所有者”出口设置为MainViewController。 现在,为了确保视图控制器实际加载正确的界面,并根据运行应用程序的设备连接所有正确的插口,我将执行如下操作:

    MainViewController* controller = nil;
    if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {
        controller = [[MainViewController alloc]initWithNibName:@"MainView-iPad" bundle:[NSBundle mainBundle]];
    } else {
        controller = [[MainViewController alloc] initWithNibName:@"MainView-iPhone" bundle:[NSBundle mainBundle]];
    }
    /* Present the controller */
    

    现在,我还应该说,如果在不同设备上运行时不需要太多不同的代码路径,这只是一个好主意。 如果在iPad和iPhone上运行时控制器的行为更加专业化,最好在MainViewController中抽象常见行为,然后编写两个子类:MainViewController_iPhone和MainViewController_iPad。 每个子类然后加载相应的.xib文件并在内部处理所有的细节。 在这种情况下,上面的代码看起来更像:

    MainViewController* controller = nil;
    if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {
        controller = [[MainViewController_iPad alloc] init];
    } else {
        controller = [[MainViewController_iPhone alloc] init];
    }
    /* Present the controller */
    
    链接地址: http://www.djcxy.com/p/95707.html

    上一篇: How to link a .xib file to a class file with Xcode 4

    下一篇: iphone to ipad xib file change