首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >动态加载NIB?

动态加载NIB?
EN

Stack Overflow用户
提问于 2010-08-25 01:00:52
回答 1查看 294关注 0票数 0

我没有使用三个独立的控制器及其相关的*.xib文件,而是尝试设置一个通用控制器,然后使用三个不同的xib文件RED.xib“"GREEN.xib”“& "BLUE.xib”中的一个来实例化它。

代码语言:javascript
复制
NSString *nibColor;
switch (selectedRow) {
    case 0: 
        nibColor = @"RED";
        break;
    case 1:
        nibColor = @"GREEN";
        break;
    case 2:
        nibColor = @"BLUE";
        break;
}

ColorController *colorController = [[ColorController alloc] initWithNibName:nibColor bundle:nil];

我的问题是我没有链接视图,并得到以下错误。

代码语言:javascript
复制
loaded the "RED" nib but the view outlet was not set.

我知道通常在IB中链接视图,但是有没有办法在运行时动态选择nib,或者我需要创建单独的redController、blueController和greenControllers?

干杯加里

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-08-25 01:05:08

来自苹果的UIViewController文档,我假设ColorController是它的一个子类:

在定义UIViewController的新子类时,必须指定要由控制器管理的视图。有两种相互排斥的方式来指定这些视图:手动或使用nib文件。如果手动指定视图,则必须实现loadView方法,并使用该方法将根视图对象分配给视图属性。如果使用nib文件指定视图,则不能重写loadView,而应在接口生成器中创建一个nib文件,然后使用initWithNibName:bundle:方法初始化视图控制器对象。使用nib文件创建视图通常更简单,因为您可以使用Interface Builder应用程序以图形方式创建和配置视图(而不是以编程方式)。然而,这两种技术具有相同的最终结果,即创建适当的视图集并通过view属性公开它们。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3558957

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档