gpt4 book ai didi

ios - XIB 中的依赖注入(inject)与异议

转载 作者:行者123 更新时间:2023-11-29 04:06:15 25 4
gpt4 key购买 nike

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

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

[self bindBlock:^(JSObjectionInjector *context) {
        return [[MainMenuBlue alloc] init] autorelease];
} toClass:[MainMenu class]];

根据我的配置,我有时将其绑定(bind)到“MainMenuRed”或“MainMenuYellow”等...

问题显然是我的 xib 文件所有者是“MainMenu”,因此它创建了一个“MainMenu”。
奇怪不是吗? :-)
您知道将 xib 连接到良好 Controller 的优雅方法吗?无需将 MainMenu.xib 复制到 MainMenuBlue.xib、MainMenuRed.xib、MainMenuYellow.xib

我相信使用 xib 文件这是不可能的,所以我必须远离界面生成器......

重要:
这只是一个例子来说明我的需求。当然,实际上我不仅仅改变背景颜色。

编辑:
感谢贾斯珀布鲁斯,我找到了答案。事实上,我创造了一个并不真正的问题。
根据我的配置,我只需要做:

[[MainMenuBlue alloc] initWithNibName:@"MainMenu" bundle:nil];

[[MainMenuRed alloc] initWithNibName:@"MainMenu" bundle:nil];



马丁·马加基安

最佳答案

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

当您进行绑定(bind)时,请务必使用 initWithNibName:bundle:

关于ios - XIB 中的依赖注入(inject)与异议,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15154895/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com