Ios 带有异议的XIB依赖注入

Ios 带有异议的XIB依赖注入,ios,objective-c,interface-builder,ioc-container,xib,Ios,Objective C,Interface Builder,Ioc Container,Xib,我正在尝试使用依赖注入框架“”动态更改我的xib文件所有者。如果您不知道反对意见,请理解我只是想动态更改我的xib文件所有者 让我举个例子。 当我启动我的应用程序时,我将类“MainMenuBlue”的分配绑定到类“MainMenu” [自绑定块:^(JSObjectionInjector*上下文){ return[[MainMenuBlue alloc]init]autorelease]; }toClass:[主菜单类]] 根据我的配置,我有时会将其绑定到“MainMenuReed”或“Mai

我正在尝试使用依赖注入框架“”动态更改我的xib文件所有者。如果您不知道反对意见,请理解我只是想动态更改我的xib文件所有者

让我举个例子。
当我启动我的应用程序时,我将类“MainMenuBlue”的分配绑定到类“MainMenu”

[自绑定块:^(JSObjectionInjector*上下文){
return[[MainMenuBlue alloc]init]autorelease];
}toClass:[主菜单类]]

根据我的配置,我有时会将其绑定到“MainMenuReed”或“MainMenuYellow”等

问题显然是我的xib文件所有者是“MainMenu”,因此它创建了一个“MainMenu”。
奇怪吧?:-)
你知道一种优雅的方式将xib链接到好的控制器吗? 不将MainMenu.xib复制到MainMenuBlue.xib、MainMenuured.xib、MainMenuYellow.xib

我相信这将不可能使用xib文件,所以我将不得不远离界面生成器

重要提示:
这只是一个例子来说明我的需要。当然,在现实中,我不仅仅改变背景颜色

编辑:
多亏了贾斯珀·布鲁斯,我才知道。事实上,我制造了一个不是真正的问题。
根据我的配置,我只需要执行以下操作:

[[MainMenuBlue alloc]initWithNibName:@“MainMenu”捆绑包:nil]

[[MainMenuRed alloc]initWithNibName:@“MainMenu”捆绑包:nil]




Martin Magakian

在文件所有者中指定什么类并不重要,只要它响应与运行时提供的类相同的消息。Ie文件的所有者只是作为连接你的接口


进行绑定时,请确保使用initWithNibName:bundle:

Jasper Blues谢谢。我只需要从以下位置创建对象:[[MainMenuBlue alloc]initWithNibName:@“MainMenu”bundle:nil];在一种情况下,或者[[MainMenuRed alloc]initWithNibName:@“MainMenu”bundle:nil];在另一种情况下。