Iphone UITableView selectRowAtIndexPath不执行任何操作

Iphone UITableView selectRowAtIndexPath不执行任何操作,iphone,uitableview,iphone-sdk-3.0,Iphone,Uitableview,Iphone Sdk 3.0,我在获取SelectRowAtIndex路径以进行工作时遇到问题。如果在启动动画之前调用selectRowForIndexPath函数,这会翻转有问题的tableview,tableview将不会根据请求高亮显示tableview行。事实上,似乎对tableview执行任何操作都不会给出任何响应。有什么问题吗 我还调用了setNeedsDisplay等等,但是这些函数似乎什么都没有做 - (void)setCurrentTAType:(MHAbstractTAParameter *)aoTAPa

我在获取SelectRowAtIndex路径以进行工作时遇到问题。如果在启动动画之前调用selectRowForIndexPath函数,这会翻转有问题的tableview,tableview将不会根据请求高亮显示tableview行。事实上,似乎对tableview执行任何操作都不会给出任何响应。有什么问题吗

我还调用了setNeedsDisplay等等,但是这些函数似乎什么都没有做

- (void)setCurrentTAType:(MHAbstractTAParameter *)aoTAParameter sequenceNo:(NSInteger)aiSequence {

    m_iSequence = aiSequence;
    NSInteger iSelectedRow = 0;

    if ([aoTAParameter isKindOfClass:[MHOverlayTAParameter class]]) {
        m_iDisplayType = MHChartTADisplayOverlay;
        [m_oTableView performSelectorOnMainThread:@selector(reloadData) withObject:nil waitUntilDone:NO];

        MHOverlayTAParameter *oOverlayParam = (MHOverlayTAParameter *)aoTAParameter;

        switch (oOverlayParam.iOverlayTAType) {
            case MHChartOverlayNone:
                iSelectedRow = 0;
                break;
            case MHChartOverlaySMA:
                iSelectedRow = 1;
                break;
            case MHChartOverlayWMA:
                iSelectedRow = 2;
                break;
            case MHChartOverlayEMA:
                iSelectedRow = 3;
                break;
            case MHChartOverlaySAR:
                iSelectedRow = 4;
                break;
            case MHChartOverlayBoll:
                iSelectedRow = 5;
                break;
            default:
                iSelectedRow = 0;
                break;
        }


    } else {

        m_iDisplayType = MHChartTADisplayUnderlay;
        [m_oTableView performSelectorOnMainThread:@selector(reloadData) withObject:nil waitUntilDone:NO];

        MHUnderlayTAParameter *oUnderlayParam = (MHUnderlayTAParameter *)aoTAParameter;

        switch (oUnderlayParam.iUnderlayTAType) {
            case MHChartUnderlayNone:
                iSelectedRow = 0;
                break;
            case MHChartUnderlayVolume:
                iSelectedRow = 1;
                break;
            case MHChartUnderlayRSI:
                iSelectedRow = 2;
                break;
            case MHChartUnderlayMACD:
                iSelectedRow = 3;
                break;
            case MHChartUnderlayMTM:
                iSelectedRow = 4;
                break;
            case MHChartUnderlayROC:
                iSelectedRow = 5;
                break;
            case MHChartUnderlayFastSTC:
                iSelectedRow = 6;
                break;
            case MHChartUnderlaySlowSTC:
                iSelectedRow = 7;
                break;
            case MHChartUnderlayWilliamPctR:
                iSelectedRow = 8;
                break;
            case MHChartUnderlayOBV:
                iSelectedRow = 9;
                break;
            case MHChartUnderlayPVT:
                iSelectedRow = 10;
                break;
            case MHChartUnderlayDMI:
                iSelectedRow = 11;
                break;
            case MHChartUnderlayVolumeP:
                iSelectedRow = 12;
                break;
            case MHChartUnderlayTurnover:
                iSelectedRow = 13;
                break;
            case MHChartUnderlayTurnoverP:
                iSelectedRow = 14;
                break;
            case MHChartUnderlayVolatility:
                iSelectedRow = 15;
            default:
                iSelectedRow = 0;
                break;
        }
    }

    NSIndexPath *oIndexPath = [NSIndexPath indexPathForRow:iSelectedRow inSection:0];

    [m_oTableView selectRowAtIndexPath:oIndexPath animated:YES scrollPosition:UITableViewScrollPositionMiddle];
    [m_oTableView setNeedsDisplay];
}
除掉


[m_oTableView performSelectorOnMainThread:@selector(reloadData)with object:nil waitUntilDone:NO]

我感觉在您告诉表选择该行之前,这还没有完成,因此指定的索引路径可能不存在


只需将该调用替换为
[m_-oTableView-reloadData]
,然后查看是否有效

[m_-oTableView-performSelectorOnMainThread:@selector(reloadData)with-object:nil waitUntilDone:YES];成功了。谢谢~