我正在制作一个iPad SplitView应用程序,我在左边有一个MasterView表(横向)和右边的DetailView(到目前为止没有新的......)。当我单击表格单元格时,detailView会显示单元格详细信息。 我在detialView上还有一个按钮,可以向前移动到下一个单元格,还有一个按钮可以向后移动到前一个单元格。
我的问题是,每当我点击按钮时,我想更改左侧表格视图中的单元格选择,以便用户知道他目前在哪个单元格。
我尝试通过调用tableView:didSelectRowAtIndexPath:方法,但我似乎无法正确设置NSIndexPath(我想发送一个整数来指示下一个单元格的编号)。
以下是调用selectRowAtIndexPath:方法的代码:
iPadHelloWorldAppDelegate是AppDelegate。 masterViewController是主控制器,上面有表格。
// method to set the image for the previous letter
-(IBAction)previousLetter{
iPadHelloWorldAppDelegate *appDelegate = [[UIApplication sharedApplication] delegate];
NSLog(@"IndexOfImage equals: %@", appDelegate.indexOfImage);
int number = [[appDelegate.indexOfImage substringFromIndex:5] intValue];
NSString *imageName = [NSString stringWithFormat:@"image%@.png",[NSString stringWithFormat:@"%d", number-1]];
[self.letterImageView setImage:[UIImage imageNamed:imageName]];
NSLog(@"Image name: %@", imageName);
appDelegate.indexOfImage = [imageName substringToIndex:6];
NSIndexPath *currentPath = appDelegate.currentPath;
NSIndexPath *nextPath = [NSIndexPath indexPathForRow:currentPath.row-1 inSection:currentPath.section];
[masterViewController.tableView selectRowAtIndexPath:nextPath animated:YES scrollPosition:UITableViewScrollPositionNone];
NSLog(@"currentPath: %@", currentPath);
appDelegate.currentPath = nextPath;
NSLog(@"nextPath: %@", nextPath);
请帮忙......
答案 0 :(得分:1)
我认为这可能有效。对于您的转发按钮,请使用此代码
NSIndexPath *currentPath = [tableView indexPathForSelectedRow];
NSIndexPath *nextPath = [NSIndexPath indexPathForRow:currentPath.row+1 inSection:currentPath.section];
[tableView selectRowAtIndexPath:nextPath animated:YES scrollPosition:UITableViewScrollPositionMiddle];
对于“后退”按钮,将-1替换为+1。
有关indexPathForRow:inSection:method。
,请参阅NSIndexPath UIKit Additions documentation答案 1 :(得分:0)
“tableView:didSelectRowAtIndexPath:”是委托方法;你不应该直接打电话。相反,尝试调用“selectRowAtIndexPath:animated:scrollPosition:”