如何从带有占位符的NIB加载UIViewController?

时间:2009-10-26 21:06:15

标签: iphone cocoa-touch interface-builder

我有一个UIViewController,我想从NIB加载,其中定义了一个代理(占位符)对象。我第一次加载它时,我会经历这个问题:

MyViewController *screen = [[MyViewController alloc] init];

NSDictionary *proxyDict = [NSDictionary dictionaryWithObject:myObject forKey:@"MyProxy"];
NSDictionary *optionsDict = [NSDictionary dictionaryWithObject:proxyDict forKey:UINibExternalObjects];
[[NSBundle mainBundle] loadNibNamed:@"MyViewController" owner:screen options:optionsDict];

因此,这会将NIB文件中声明为“MyProxy”的代理对象设置为指向已存在的对象myObject。这很有效。

现在,如果我转到另一个屏幕并触发低内存警告,它会卸载视图。当我回到那个屏幕时,它会自动重新加载视图,它没有空间设置代理对象的手动定义的选项字典,然后它崩溃试图找到一个链接“MyProxy”的对象。

我该如何做到这一点?

2 个答案:

答案 0 :(得分:1)

如何在-loadView或-viewDidLoad中设置代理对象。每次加载/重新加载视图时都会调用它们(与低内存条件后的-viewDidUnload一起)。

答案 1 :(得分:0)

从未找到过这方面的解决方案,提交了功能请求,但没有收到回复。