代码之家  ›  专栏  ›  技术社区  ›  fuzzygoat

动态加载笔尖?

  •  0
  • fuzzygoat  · 技术社区  · 15 年前

    我没有使用三个单独的控制器和它们相关的*.xib文件,而是尝试设置一个通用控制器,然后用三个不同的xib文件中的一个实例化它红色.xib" "绿色.xib“&”蓝色.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.
    

    干杯,加里

    1 回复  |  直到 15 年前
        1
  •  1
  •   Jon Shier    15 年前

    来自苹果的UIViewController文档,我假设ColorController是:

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