如何将 UIViewController 实例传递给自定义 UITableCell
Posted
技术标签:
【中文标题】如何将 UIViewController 实例传递给自定义 UITableCell【英文标题】:How to pass UIViewController instance to Custom UITableCell 【发布时间】:2016-04-27 04:24:28 【问题描述】:我有一个视图控制器,它是 HomeController。我在 HomeController 中添加了一个表格视图。我在这个 UITableView
上添加了一个自定义单元格,名称是 HomeCategoryRow。所以我的搜索是我必须将 HomeController 实例传递给我的 HomeCategoryRow
类以完成我的工作。提前致谢。
【问题讨论】:
【参考方案1】:NSLog(@"The View Controller is: %@",_homeController);
UIStoryboard *storyboard = [UIStoryboard storyboardWithName: @"Main" bundle:[NSBundle mainBundle]];
AblumsController *myAlbum = [storyboard instantiateViewControllerWithIdentifier:@"AlbumsControllerIdentifier"]; // myAlbum.typeofParam=2;
myAlbum.homeController = _homeController;//ADD THIS
[_homeController pushViewController:myAlbum animated:YES];
AblumsController.h
@property (nonatomic, weak) id homeController;
或
@class HomeController;
@interface HomeTableViewController : UITableViewController
@property (nonatomic, weak) HomeController *homeController;
AblumsController.m
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
HomeCategoryRow *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
cell.homeController = self.homeController
HomeCategoryRow.h
@property (nonatomic, weak) id homeController;
或
@class HomeController;
@interface HomeCategoryRow : UITableViewCell
@property (nonatomic, weak) HomeController *homeController;
HomeCategoryRow.m
#import "HomeController.h"
【讨论】:
NSLog(@"视图控制器是:%@",_homeController); UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:[NSBundle mainBundle]]; AblumsController *myAlbum = [storyboard instantiateViewControllerWithIdentifier:@"AlbumsControllerIdentifier"]; // myAlbum.typeofParam=2; [_homeController pushViewController:myAlbum 动画:YES]; //我正在使用实例变量去另一个视图控制器......但仍然显示我打印的视图控制器是:(null)AblumsController *myAlbum
是您的HomeController
中的tableview?
我正在使用 homeController 实例去新的 uiviewcontroller 即:[_homeController pushViewController:myAlbum animated:YES];但不工作
不,这是另一个 viewController @tim007
myAlbum.homeController = _homeController;它将如何工作?我没有在 AblumsController 中使用 homeController 实例。我不需要这样。 UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:[NSBundle mainBundle]]; AblumsController *myAlbum = [storyboard instantiateViewControllerWithIdentifier:@"AlbumsControllerIdentifier"]; // myAlbum.typeofParam=2; myAlbum.homeController = _homeController;//添加这个 [_homeController pushViewController:myAlbum animated:YES];我在 HomeCategoryRow.m 类中使用的这段代码以上是关于如何将 UIViewController 实例传递给自定义 UITableCell的主要内容,如果未能解决你的问题,请参考以下文章
Swift - 如何将数据从 UITableViewCell 类传递到 UIViewController
如何通过将类名传递给方法来创建子类 UIViewController?
如何将数据从基于 plist 的 UITableView 传递到 UIViewController
CarbonKit:如何将选项卡数组标题 ID 传递给 UIViewController?