首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从变量加载NIB

从变量加载NIB
EN

Stack Overflow用户
提问于 2011-03-24 18:41:19
回答 2查看 488关注 0票数 0

我正在尝试根据从设置文件中获得的变量来加载NIB。代码如下:

代码语言:javascript
复制
//select the right nib name
NSString *nibVar = [nibs objectForKey:@"controller"];

// create the view controller from the selected nib name
UIViewController *aController = [[UIViewController alloc] initWithNibName:nibVar bundle:nil];
aController.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;
[self presentModalViewController:aController animated:YES];
[aController release];

不幸的是,这不起作用。

这里有什么想法吗?

谢谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-03-24 19:59:56

您不能使用任意NIB实例化"UIViewController“,必须使用该类的NIB实例化”无论您的自定义视图控制器类是什么“。

它崩溃是因为它试图访问UIViewController中不存在的属性。

如果您想要执行这种动态视图控制器加载,则需要做更多的工作,并使用特殊的Class类方法,该方法允许您使用类名的字符串来实例化对象,而不是硬编码。

像这样的:

代码语言:javascript
复制
Class viewControllerClass = NSClassFromString( nibVar );
UIViewController* aController = (UIViewController*) [[viewControllerClass alloc] initWithNibName:nibVar bundle:nil];
票数 1
EN

Stack Overflow用户

发布于 2011-03-24 18:44:37

确保NIB名称正确,并且不包含xib扩展名。它也是区分大小写的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5417889

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档