2009-10-11 1 views
0

У меня есть приложение на основе навигации с двумя уровнями, на втором уровне пользователь выбирает параметр, который должен вызывать инициализацию и загрузку нужного файла Nib (есть файл Nib для каждого доступного выбора).Инициализировать пользовательский класс в соответствии с выбором пользователя

Теперь я выполняю инициализацию в коммутаторе, основываясь на выборе пользователя. Проблема в том, что я добавляю Nibs во время разработки, и теперь мне нужно обновить часть переключателя для каждого добавляемого Nib.

Я хотел бы создать файл * .plist с именами Nib и загрузить Nib в соответствии со значением в файле plist, мне не удалось создать класс со значением в переменной nsstring.

Вот один из моих попыток. Имя Nib - это nsstring с именем имени элемента.

[код]

childController = [[Nibname Alloc] initWithNibName: @Nibname расслоение: ноль];

[/ код]

любая помощь будет оценена

Thx

+0

На каком языке это? – Nifle

ответ

0


Поскольку мы говорим о подталкивании контроллеры просмотра здесь, можно обобщить свой 'Alloc', и использовать nibname для загрузки правильного наконечника. Как это:

// 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, это все равно будет загрузить нужный класс от кончика пера имени вы предоставляете.

 Смежные вопросы

  • Нет связанных вопросов^_^