我没有使用三个独立的控制器及其相关的*.xib文件,而是尝试设置一个通用控制器,然后使用三个不同的xib文件RED.xib“"GREEN.xib”“& "BLUE.xib”中的一个来实例化它。
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];我的问题是我没有链接视图,并得到以下错误。
loaded the "RED" nib but the view outlet was not set.我知道通常在IB中链接视图,但是有没有办法在运行时动态选择nib,或者我需要创建单独的redController、blueController和greenControllers?
干杯加里
发布于 2010-08-25 01:05:08
来自苹果的UIViewController文档,我假设ColorController是它的一个子类:
在定义UIViewController的新子类时,必须指定要由控制器管理的视图。有两种相互排斥的方式来指定这些视图:手动或使用nib文件。如果手动指定视图,则必须实现loadView方法,并使用该方法将根视图对象分配给视图属性。如果使用nib文件指定视图,则不能重写loadView,而应在接口生成器中创建一个nib文件,然后使用initWithNibName:bundle:方法初始化视图控制器对象。使用nib文件创建视图通常更简单,因为您可以使用Interface Builder应用程序以图形方式创建和配置视图(而不是以编程方式)。然而,这两种技术具有相同的最终结果,即创建适当的视图集并通过view属性公开它们。
https://stackoverflow.com/questions/3558957
复制相似问题