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



我是一个新的Objective-C程序员。

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

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

我的TableView显示公司。我想显示公司的详细信息,根据细胞LongClick。

你需要创建一个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有相同的效果。

最新更新