根据用户选择初始化自定义类

时间:2009-10-11 21:23:07

标签: class nsstring initialization

我有一个基于导航的应用程序有两个级别,在第二级用户选择一个选项,该选项应该导致初始化和加载正确的Nib文件(每个可用选项都有一个Nib文件)。

现在我正在基于用户选择在交换机中进行初始化。 问题是我正在进行开发时添加Nibs,现在我需要为我添加的每个Nib更新开关部分。

我想创建一个带有Nib名称的* .plist文件,并根据plist文件中的值加载Nib,我没有设法创建一个带有nsstring变量值的类。

这是我的一个尝试 - Nib名称是带有nib名称值的nsstring。

[代码]

childController = [[Nibname alloc] initWithNibName:@Nibname bundle:nil];

[/代码]

任何帮助将不胜感激

THX

1 个答案:

答案 0 :(得分:0)


由于我们在这里讨论推送视图控制器,你可以概括你的'alloc',并使用nibname加载正确的nib。像这样:

// load info from your plist into a dictionary
    NSString * path= [[NSBundle mainBundle] pathForResource:@"AllNibs" ofType:@"plist"];
    NSDictionary * nibs = [NSDictionary dictionaryWithContentsOfFile:path];

    // use a value to select the right nib name
    NSString *selector = @"viewController1";
    NSString *nibName = [nibs objectForKey:selector];

    // create the view controller from the selected nib name
    UIViewController *aController = [[UIViewController alloc] initWithNibName:nibName bundle:nil];

即使您已经将UIViewController子类化,它仍将从您提供的nib名称加载正确的类。