1

在 myDetailViewController.m中,该rowNumber值运行良好。但是当值不能应用到viewDidLoadrowNumber是零。我怎么解决这个问题?

//DetailViewController.m

    -(void)updateRowNumber:(int)theindex
    {
        rowNumber = theindex + 1;
        message.text = [NSString stringWithFormat:@"row %d was clicked", rowNumber];
        NSLog(@"ID #000%d", rowNumber);
    }

    -(void)viewDidLoad
    {
        message.text = [NSString stringWithFormat:@"row %d was clicked", rowNumber];
    }
4

1 回答 1

4

目前尚不清楚您要做什么,但很明显您应该使用 tableview 委托方法:

看来您确实需要以下方法:

-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath;

你想用这个存储rowNumber:

-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
   int rowNumber = indexPath.row;
}

或者,如果该行仍处于选中状态,并且您想在其他地方获取该索引,您可以执行以下操作:

NSIndexPath *index = [self.tableView indexPathForSelectedRow];
int rowNumber = index.row;

但是请查看开发站点上的所有方法:

http://developer.apple.com/library/ios/#documentation/uikit/reference/UITableViewDelegate_Protocol/Reference/Reference.html

于 2013-05-22T16:47:48.737 回答