在我的DetailViewController.m中,rowNumber值运行良好。但是,当该值不能应用于viewDidLoad时,rowNumber为零。我怎么解决这个问题?

//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];
    }

最佳答案

目前尚不清楚您要做什么,但是很明显您应该使用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

关于ios - 为什么我的UITableView rowNumber为零?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16697261/

10-10 18:26