我正在尝试使用依赖注入框架“ Objection ”动态更改我的 xib 文件所有者。如果您不知道异议,请了解我只想动态更改我的 xib 文件所有者。
让我举个例子。
当我启动我的应用程序时,我将“MainMenuBlue”类的分配绑定到“MainMenu”类
[self bindBlock:^(JSObjectionInjector *context) {
return [[MainMenuBlue alloc] init] autorelease];
} toClass:[MainMenu 类]];
根据我的配置,我有时将其绑定到“MainMenuRed”或“MainMenuYellow”等...
问题显然是我的 xib 文件所有者是“MainMenu”,所以它创建了一个“MainMenu”。
是不是很奇怪?:-)
你知道将 xib 链接到好的控制器的优雅方法吗?无需将 MainMenu.xib 复制到 MainMenuBlue.xib、MainMenuRed.xib、MainMenuYellow.xib
我相信这将不可能使用 xib 文件,所以我将不得不远离界面生成器......
重要提示:
这只是说明我的需要的一个例子。当然在现实中我不只是改变背景颜色。
编辑:
感谢 Jasper Blues 我发现了。实际上,我创造了一个不是真正的问题。
根据我的配置,我只需要这样做:
[[MainMenuBlue alloc] initWithNibName:@"MainMenu" bundle:nil];
或者
[[MainMenuRed alloc] initWithNibName:@"MainMenu" bundle:nil];
马丁马加基安