我有一个自定义表格视图单元格类。在单元格中,我有一个UIButton
。当我单击单元格中的那个按钮时,我想显示一个弹出视图,实际上我正在使用RNBlurModalView
。
因为它是UITableViewCell
- 类我无法使用self
,所以我尝试在自定义单元格中创建UIViewController
,如下所示:
__weak UIViewController *ctrl;
显示弹出窗口的代码如下:
-(IBAction)openView {
RNBlurModalView *modal = [[RNBlurModalView alloc] initWithViewController:ctrl title:@"Title" message:@"Hello"];
[modal show];
}
因此,我试图使用initWithViewController:self
代替initWithViewController:ctrl
。但是当我点击按钮时没有任何反应。
我该如何解决这个问题?
答案 0 :(得分:0)
自定义tableView单元格是UIView
的子类,您希望在其中显示UIViewController
不正确。你必须告诉包含当前tableView的viewController为你做的工作。我建议你使用委托模式将消息传递给viewController。
如:
cell.delegate = self; // self is the current view controller
实现委托方法
- (void)showTheModalView
{
RNBlurModalView *modal = [[RNBlurModalView alloc] initWithViewController:ctrl title:@"Title" message:@"Hello"];
[modal show];
}
并在单元格实现中
-(IBAction)openView {
//RNBlurModalView *modal = [[RNBlurModalView alloc] initWithViewController:ctrl title:@"Title" message:@"Hello"];
//[modal show];
[self.delegate showTheModalView];
}
宣布代表
@protocol SomeDelegate <NSObject>
- (void)showTheModalView;
@end