如何在Objective-C中使用segue表视图控制器单元格和单元格长按

时间:2013-01-11 05:19:27

标签: ios objective-c uitableview storyboard

我是Objective-C的新程序员。

我在我的应用中使用了故事板。它包含UITableViewController。

当我点击它是使用segue的单元格转到下一个视图控制器。但我想使用-(void)onLongPress:(UILongPressGestureRecognizer*) pGesture并使用相同的单元格显示另一个ViewController。

我的TableView显示公司。我想根据单元格LongClick显示公司详细信息。

1 个答案:

答案 0 :(得分:1)

您需要创建一个UILongPressGestureRecognizer。

然后,您需要将其附加到您希望识别longPress的视图。 附加它时,您可以定义一个动作选择器和一个目标。动作选择器是一种在识别手势时将在目标中触发的方法。

假设您在tableViewController中创建了手势识别器,并且也是目标,那么它看起来就像这样

UILongPressGestureRecognizer* longPGR =
[[UILongPressGestureRecognizer alloc] initWithTarget:self
                                              action:@selector(onLongPress:)];
[self.relevantViewInTableViewCell addGestureRecognizer:longPGR];

然后你创建一个拦截水龙头的动作方法

-(void)onLongPress:(UILongPressGestureRecognizer*)pGesture
{
    //statement
}

如果要使用动态单元格创建表格,则应在创建单元格时创建longPGR。

如果您有静态单元格,可以将IBOutlet @properties连接到相关单元格,并在longPGR创建中使用该属性。

要显示另一个viewController,不必使用segue。您可以在longPress方法中将新的viewController推送到NavigationController的堆栈:

[self.navigationController pushViewController:newViewController];

这与使用segue具有相同的效果。