Как динамически изменить XIB UIVIewController - PullRequest
2 голосов
/ 21 декабря 2010

Например, у меня есть UIVIewController "controller1".Этот контроллер создается с initWithNibName ... с "file1.xib".Я хочу динамически изменить файл xib моего "controller1" на "file2.xib"

Для возобновления:

"controller1" <-> "file1.xib", и я хочу динамическиhave: "controler1" <-> "file2.xib"

Как я могу это сделать?

Надеюсь, мне все ясно.

Ответы [ 2 ]

7 голосов
/ 21 декабря 2010

Если вы хотите изменить представления в UIViewController, просто используйте этот код:

NSArray *nibObjs = [[NSBundle mainBundle] loadNibNamed:@"file2" owner:self options:nil];
UIView *aView = [nibObjs objectAtIndex:0];
self.view = aView;
1 голос
/ 21 декабря 2010

У меня есть два ответа:

1) Почему - это не то, что вы обычно делаете - что делает этот случай особенным? На самом деле, я собираюсь отредактировать это, чтобы сделать его более выразительным -> НЕ ДЕЛАЙТЕ ЭТОГО <- в UIViewController будут всевозможные зависимости, о которых вы не знаете (например, если есть предупреждение о нехватке памяти, и ваш контроллер представления выгружает свой вид, из какой xib он будет загружать вид, когда ему пришлось снова его отображать?) </p>

2) Если вам отчаянно нужно было , вы можете удалить представление и перезагрузить его, хотя loadNibNamed: owner: NSBundle, передавая новый xib и self в качестве владельца.

...