如何dynamic更改UIVIewController的xib

例如,我有一个UIVIewController“controller1”。 这个控制器使用“file1.xib”与initWithNibName …实例化。 我想dynamic地将我的“controller1”的xib文件更改为“file2.xib”

恢复 :

“controller1”< – >“file1.xib”,我想dynamic地有:“controler1”< – >“file2.xib”

我怎样才能做到这一点 ?

希望我清楚。

当你想在UIViewController中更改视图时,只需使用下面的代码:

NSArray *nibObjs = [[NSBundle mainBundle] loadNibNamed:@"file2" owner:self options:nil]; UIView *aView = [nibObjs objectAtIndex:0]; self.view = aView; 

我有两个回应:

1)为什么 – 这不是你通常会做的事情 – 是什么使这个案例变得特别? 事实上,我将要编辑这个更加强调 – > 不要做它 – 你将不知道UIViewController中的所有依赖关系(例如,如果内存不足警告和你的视图控制器卸载它的视图,哪个xib会加载的视图,当它不得不再次显示?)

2) 如果你迫切需要,你可以通过NSBundle的loadNibNamed:owner来移除视图并重新加载它:传递新的xib和self作为所有者。