0

私は Objective-C の初心者プログラマです。

アプリでストーリーボードを使用しています。UITableViewController が含まれています。

クリックすると、セグエを使用してセルが次のView Controllerに移動します。しかし、-(void)onLongPress:(UILongPressGestureRecognizer*)pGesture を使用して、同じセルを使用して別の ViewController を表示したいと考えています。

私のTableViewは会社を示しています。セルLongClickに応じて会社の詳細を表示したい。

4

1 に答える 1

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を表示するために、セグエを使用する必要はありません。longPress メソッドで、新しい viewController を NavigationController のスタックにプッシュできます。

[self.navigationController pushViewController:newViewController];

これは、セグエを使用するのと同じ効果があります。

于 2013-01-11T05:40:50.910 に答える