台风注入 xib 加载 table 细胞
Typhoon inject xib loaded table cells
我正在尝试将我的一些视图控制器和 UITableView
子类迁移到使用 Typhoon,但是我找不到关于如何处理从 tableView 的 dequeReusableCellWithIdentifier
。
我正在使用的 TableViewController 使用多种单元格类型,它使用 registerNib:forCellReuseIdentifer:
向 viewDidLoad
中的 TableView 注册。
我们应该怎么做才能让 Typhoon 注入从 xibs 加载的细胞?
可能最简单的事情是为您的 xib 加载 table 单元创建一个视图程序集,并将其作为您的应用程序程序集之一。假设您使用的是 plist integration,那么您可以将其添加到您应用的 plist 中,如下所示:
<key>TyphoonInitialAssemblies</key>
<array>
<string>ViewProvider</string>
<string>ApplicationAssembly</string>
<string>CoreComponentsAssembly</string>
<string>NetworkAssembly</string>
</array>
从逻辑上讲,它将位于顶级应用程序程序集的一侧。
@interface ViewProvider : TyphoonAssembly
//Reference any other assemblies that you need
@property(nonatomic, strong, readonly) CoreComponents *coreComponents;
//Create a definition for the table cell with the injections that need to happen.
- (UITableViewCell*)myTableViewCell;
接下来将其注入您的视图控制器。
@interface MyViewController : UIViewController
@property (nonatomic, strong) InjectedClass(ViewAssembly) viewProvider;
@end
@implementation MyViewController
- (UITableViewCell *)tableView:(UITableView *)tableView
cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
//Load the cell from the XIB first.
//And now tell Typhoon to inject it
[self.viewProvider inject:cell];
//The above matches by type, you can also provide an @selector()
//definition in the assembly
//Any other config to the cell
return cell;
}
此功能的文档是 here。
我正在尝试将我的一些视图控制器和 UITableView
子类迁移到使用 Typhoon,但是我找不到关于如何处理从 tableView 的 dequeReusableCellWithIdentifier
。
我正在使用的 TableViewController 使用多种单元格类型,它使用 registerNib:forCellReuseIdentifer:
向 viewDidLoad
中的 TableView 注册。
我们应该怎么做才能让 Typhoon 注入从 xibs 加载的细胞?
可能最简单的事情是为您的 xib 加载 table 单元创建一个视图程序集,并将其作为您的应用程序程序集之一。假设您使用的是 plist integration,那么您可以将其添加到您应用的 plist 中,如下所示:
<key>TyphoonInitialAssemblies</key>
<array>
<string>ViewProvider</string>
<string>ApplicationAssembly</string>
<string>CoreComponentsAssembly</string>
<string>NetworkAssembly</string>
</array>
从逻辑上讲,它将位于顶级应用程序程序集的一侧。
@interface ViewProvider : TyphoonAssembly
//Reference any other assemblies that you need
@property(nonatomic, strong, readonly) CoreComponents *coreComponents;
//Create a definition for the table cell with the injections that need to happen.
- (UITableViewCell*)myTableViewCell;
接下来将其注入您的视图控制器。
@interface MyViewController : UIViewController
@property (nonatomic, strong) InjectedClass(ViewAssembly) viewProvider;
@end
@implementation MyViewController
- (UITableViewCell *)tableView:(UITableView *)tableView
cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
//Load the cell from the XIB first.
//And now tell Typhoon to inject it
[self.viewProvider inject:cell];
//The above matches by type, you can also provide an @selector()
//definition in the assembly
//Any other config to the cell
return cell;
}
此功能的文档是 here。