从xib加载自定义viewcontroller

时间:2014-01-09 06:29:28

标签: objective-c macos viewcontroller

你好,我有一个带有多个窗口和视图的OS X应用程序。 现在我想重构一些代码,并试图通过我使用follong方法生成的xib文件加载我的自定义viewcontroller:

TestViewController* tableViewController =
[[TestViewController alloc] initWithNibName:@"TestView" bundle:nil];

TestViewController是NSViewController的子类。在这一点上一切都很好,(我希望)因为我看到没有例外。

为了更多地了解我的代码,以下是抛出错误的部分:

        if (tableViewController != nil)
        {
            myCurrentViewController = tableViewController;
            [myCurrentViewController setTitle:@"TestView"];
        }

        [[self window] setContentSize:[smallView frame].size];
        [[[self window] contentView] addSubview:[myCurrentViewController view]]; //here is the error

我已经尝试过检查文件所有者,主界面是MainMenu ......

1 个答案:

答案 0 :(得分:1)

最后我找到了解决问题的方法。

我的带有Xib的ViewController由XCode生成,所有文件都具有相同的名称模式,如TestViewController.h,TestViewController.m和TestViewController.xib。

我发现的所有示例都使用“TestView”引用了xib文件,因此我认为xcode通过添加“xib”名称结尾的“Controller”来匹配正确的viewcontroller及其视图。

在我的情况下,我必须将我的xib文件从TestViewController.xib重命名为TestView.xib,我可以使用@“TestView”加载它。

H个