【问题标题】:iphone reload tableViewiphone重新加载tableView
【发布时间】:2010-05-18 02:19:52
【问题描述】:

在下面的代码中,我已经确定一切正常,直到 [tableView reloadData] 我在表视图委托方法中设置了 NSLOG,并且没有一个被调用。我有其他方法可以执行相同的 reloadData 并且效果很好。我唯一不同的是,这是在@catch 块中。也许你们聪明的人可以看到我做错了什么......

@catch (NSException * e) {////chart is user genrated
    logoView.image = nil;
    NSInteger row = [picker selectedRowInComponent:0];
    NSString *selectedAircraft = [aircraft objectAtIndex:row];
    NSArray* paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,
                                                         NSUserDomainMask, YES);
    NSString *docsPath = [paths objectAtIndex:0];
    NSString *checklistPath = [[NSString alloc]initWithFormat:@"%@/%@.checklist",docsPath,selectedAircraft];
    NSString *dataString = [NSString stringWithContentsOfFile:checklistPath encoding: NSUTF8StringEncoding error:NULL];


    if ([dataString hasPrefix:@"\n"]) {
        dataString = [dataString substringFromIndex:1];
    }
    NSArray *tempArray = [dataString componentsSeparatedByString:@"\n"];

    NSDictionary *temporaryDictionary = [NSDictionary dictionaryWithObject: tempArray forKey:@"User Generated Checklist"];
    self.names = temporaryDictionary;


    NSArray *tempArray2 = [NSArray arrayWithObject:@"01User Generated Checklist"];
    self.keys = tempArray2;
    aircraftLabel.text = selectedAircraft;
    checklistSelectPanel.hidden = YES;
    [tableView reloadData];


}

【问题讨论】:

  • 这可能无济于事,但出于好奇,您是否尝试过使用self.tableView 而不是tableView

标签: iphone ipad reloaddata


【解决方案1】:

你可能不想听到这个,但你没有特别提到它,所以不得不问 - 你真的设置了 tableView 委托吗?

【讨论】:

  • 是的,我有。表格视图在代码的所有其他部分都可以正常工作(并重新加载)。
  • 很公平。如果你把代码移到另一个分支,在 catch 块之外呢?或者,注释掉任何不必要的代码只是为了查看是否可以重新加载表?还是在重新加载之前再次手动设置委托?
  • 经过更多检查后,似乎“numberOf SectionsInTableView”和“numberOfRowsInSection”委托方法正在工作,但是“cellForRowatIndexPath”不是。我在那个的顶部有一个 nslog,它甚至没有被绊倒......这部分代码与 @try 块中的部分相同,除了从哪里提取数据。
  • 那时我唯一能想到的是实际上没有任何行可以显示。这是我能想到的为什么不调用该方法的唯一原因。
【解决方案2】:

我遇到了同样的问题。连续几天把头发扯下来后,我意识到我已经将我的表设置为视图(即我的视图控制器的视图属性设置为表),显然,这是一个禁忌。

如果您的表您的视图,请创建另一个视图,并将该表放在您创建的新视图中。瞧,你的桌子刷新了。

【讨论】:

  • 我不知道这是否是这里的解决方案,但我发现在您的视图中拥有一个 tableview 确实为调整界面提供了更大的灵活性。
【解决方案3】:

“用户生成的清单” 和 "01用户生成的清单"

【讨论】:

    猜你喜欢
    • 2011-03-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-04
    • 1970-01-01
    • 2016-06-19
    • 2019-12-28
    • 2011-06-12
    相关资源
    最近更新 更多