从 UITableViewCell 打开另一个视图
Posted
技术标签:
【中文标题】从 UITableViewCell 打开另一个视图【英文标题】:Opening another view from a UITableViewCell 【发布时间】:2013-10-17 17:24:16 【问题描述】:我正在尝试使用同一场景中的 UIWebView 打开嵌入在自定义表格视图单元格中的链接。但是,当我点击按钮时,webview 没有响应打开。该按钮正在工作(它将打印一个 NSLog),如果我将其设置为在“HouseItemsViewController”的 ViewDidLoad 中可见,webview 将显示。
表格视图包含我的自定义单元格,我正在尝试显示突出显示的视图:
Imgur image of my "House Items View Controller" Scene
HouseItemsViewController 包含一个接受 NSURL 的方法:
- (void)displayWebViewWithURL:(NSURL *)targetURL
NSURL *url = targetURL;
NSURLRequest *myrequest = [NSURLRequest requestWithURL:url];
[webView loadRequest:myrequest];
theURLView.hidden=NO;
自定义表格视图单元格包含一个动作:
- (IBAction)congressUrlLink:(id)sender
HouseItemsViewController* billViewController = (HouseItemsViewController*)self.tapHandler;
[billViewController displayWebViewWithURL:congressUrl];
tapHandler 的定义位置:
@property (nonatomic, copy) void (^tapHandler)(id sender);
从这里引用 HouseItemsViewController 并执行 displayWebViewWithURL:(NSURL *)targetURL 方法的正确方法是什么?[
【问题讨论】:
【参考方案1】:我会手动将 tapHandler 分配为委托。
@property (nonatomic, weak) HouseItemsViewController *delegate;
合成它,并在初始化表格视图单元格后手动分配:
[myCell setDelegate:self];
希望对你有帮助
【讨论】:
谢谢,KDaker。您会设置该委托属性并在单元格的头文件或表格视图的标题中合成它吗?然后你会在创建单元格的 tableview 控制器中调用“[myCell setDelegate:self]; 吗?你会更改我上面共享的任何代码吗?谢谢你的帮助。每次我想我开始得到这些东西我意识到我什么都不知道。 我在 TableViewController 中添加了创建单元格的“selfDelegate”行,但它返回错误:不兼容的指针类型将“TableViewController”发送到“HouseItemsViewController *”类型的参数我试图取消隐藏的带有 web 视图的视图。 @TedCap 你需要合成它(单元格实现文件)。现在setDelegate
在创建单元格的位置被调用,通常在 cellForRowAtIndexPath:
中。我将self
作为代表传递,因为我假设HouseItemsViewController
是包含您的tableview 的内容,不是这样吗?在你的单元格的头文件中,不要 import
HouseItems...
类,而是使用这个:@class HouseItemsViewController
不走运。仍然没有反应。 TableView 是“BillTableViewController”@interface BillTableViewController 中的 IBOutlet:NSObject 以上是关于从 UITableViewCell 打开另一个视图的主要内容,如果未能解决你的问题,请参考以下文章
如何执行从自定义 UITableViewCell(xib) 到另一个 ViewController 的 segue 视图
如何从另一个视图控制器将值插入 UITableViewCell
将图像异步加载到自定义 UITableViewCell 部分工作
从另一个视图控制器单击 uitableviewcell 后,swift 3 更改 uitableviewcell?