UITableViewがあり、その中に次の方法でカスタムUITableViewCellを作成します。
ItemCellController *cell = (ItemCellController *)[tableView dequeueReusableCellWithIdentifier:ContentListsCellIdentifier];
...
cell = [[[ItemCellController alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:ContentListsCellIdentifier] autorelease];
これは、touchesBeganイベントとtouchesEndedイベントを取得できるようにするために行います(これにより、ロングタッチを実装できます)。NSLogを使用すると、次のコードを使用して、touchesBeganメソッド内からlongTouchが適切に呼び出されていることがわかります。
timer = [NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(longTouch:) userInfo:nil repeats:YES];
問題は、longTouchメソッド内からモーダルウィンドウを呼び出すことができないことです。
次のことを試しましたが、NSInvalidArgumentException-[ItemCellController NavigationController]:認識されないセレクターがインスタンスに送信されましたエラーが発生します。
AddItemController *addView = [[AddItemController alloc] initWithNibName:@"AddItemView" bundle:nil];
UINavigationController *controller = [[UINavigationController alloc] initWithRootViewController:addView];
controller.navigationBar.barStyle = UIBarStyleBlack;
[[self navigationController] presentModalViewController:controller animated:YES];
[controller release];
したがって、問題は、カスタムUITableViewCell内からモーダルウィンドウを呼び出すにはどうすればよいかということです。
ありがとう