【发布时间】:2012-10-06 20:22:50
【问题描述】:
我在自定义表格视图单元格中有一些 UIButtons,当按下时我希望它们在单元格所在的表格视图所在的视图控制器中调用 segues。我现在正在做的是声明这样的动作: - (无效)行动;
在表格视图所在的类中。然后我从单元格中调用该操作,如下所示:
ViewController *viewController = [[ViewController alloc] init];
[viewController action];
但是,当调用该操作时,它表示视图控制器没有这样的 segue,我知道这是不正确的。从视图控制器本身调用“动作”可以完美地工作,而不是从单元格中调用。
另外,这里是执行segue的代码:
-(void)action {
[self performSegueWithIdentifier:@"action" sender:self];
}
我怎样才能做到这一点?
欢迎提出任何建议。
更新:
我只是尝试像这样在单元格上设置一个委托:
Cell 的头文件: @class PostCellView;
@protocol PostCellViewDelegate
-(void)action;
@end
@interface PostCellView : UITableViewCell <UIAlertViewDelegate, UIGestureRecognizerDelegate>
@property (weak, nonatomic) id <PostCellViewDelegate> delegate;
在单元格的主文件中,我调用如下操作: [self.delegate action];
在承载表格视图的视图的标题中,我像这样导入单元格: #import "PostCellView.h"
@interface ViewController : UIViewController <UITableViewDelegate, UITableViewDataSource, PostCellViewDelegate>
然后在该视图的主文件中,我有单元格操作:
-(void)action {
[self performSegueWithIdentifier:@"action" sender:self];
}
但该操作从未执行,我检查过。当我从单元格调用操作时我记录了,我在操作本身上放置了一个 NSLog,从单元格调用它的日志有效但不是操作。
【问题讨论】:
-
你能显示你执行segue的代码吗?
-
分配和初始化视图控制器只是一个例子吗?我不明白你为什么要这样做,因为当点击单元格的按钮时 TableViewController 已经存在。
-
不,不是,但当另一个用户指出我应该将单元格添加为委托时,我意识到了。
标签: ios uitableview uiviewcontroller action segue