我有一个iPhone / iPad应用程序屏幕,其中包含我在两个界面构建器文件(xib / nib)中定义的两种可能的布局。当应用程序启动时,我会查看userdefaults并选择要加载的那个。
但是,如果用户选择设置按钮并加载应用内设置菜单并更改布局,则点击导航按钮返回上一屏幕,如何将用户界面/ xib文件更改为新没有重新启动应用程序的选择?
谢谢。
答案 0 :(得分:0)
您可以使用以下方法强制加载XIB:
[[NSBundle mainBundle] loadNibNamed:@"XIBName" owner:self options:nil];
修改
尝试以下方法:
在可以在任何地方使用的实用程序类中添加以下内容。
+ (id)loadNibNamed:(NSString *)nibName ofClass:(Class)objClass {
if (nibName && objClass) {
NSArray *objects = [[NSBundle mainBundle] loadNibNamed:nibName
owner:nil
options:nil];
for (id currentObject in objects ){
if ([currentObject isKindOfClass:objClass])
return currentObject;
}
}
return nil;
}
然后拨打电话:
MyClass *myClassInstance = [Utility loadNibNamed:@"the_nib_name"
ofClass:[MyClass class]];
答案 1 :(得分:0)
MyUIViewController *controller;
if (IS_IPAD){
controller = [[MyUIViewController alloc] initWithNibName:@"MyUIViewController_iPad" bundle:nil];
} else {
controller = [[MyUIViewController alloc] initWithNibName:@"MyUIViewController_iPhone" bundle:nil];
}
你可以从导航控制器
推送[self.navigationController pushViewController:controller animated:YES];