如何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作为所有者。