为什么我的XIB文件中的视图没有被UIViewController加载?

时间:2012-05-02 04:27:06

标签: objective-c cocoa-touch uiview uiviewcontroller xib

在我的app委托中,我有:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
    // Override point for customization after application launch.
    self.viewController = [[CGMContainerViewController alloc] init];
    self.window.rootViewController = self.viewController;
    self.window.backgroundColor = [UIColor whiteColor];
    [self.window makeKeyAndVisible];
    return YES;
}

我有一个未经修改的CGMContainerViewController.h / m和一个修改过的CGMContainerViewController.xib(添加了一个按钮)。视图链接到文件所有者。

为什么XIB的视图没有显示?

编辑:是因为我正在尝试将带有状态栏的视图加载到窗口中吗?

4 个答案:

答案 0 :(得分:3)

从代码的外观来看,您没有加载任何XIB文件。您需要致电 initWithNibName:

self.viewController = [[CGMContainerViewController alloc] initWithNibName:
                                       @"CGMContainerViewController" bundle: nil];

答案 1 :(得分:1)

确保XIB中的文件所有者设置为CGMContainerViewController

enter image description here

答案 2 :(得分:0)

好。我认为这是因为对于UINavigationController,您必须设置rootViewController和所有层。我刚把它改成了UIViewController因为我不需要导航,只需要导航栏。

答案 3 :(得分:0)

我面临的问题是。如果你将viewController命名为带有“ - ”的特殊字符以及其他一些东西你的xib将无法加载 示例 - > (错误的命名) view-controller1(如果命名是这样的话,那么xib就不会被加载) 示例--->(正确命名) viewController1(xib将被加载)