1

嘿,我正在开发一个在动态 tableView 中发布 50 个位置的应用程序,当您单击一个位置时,它将转到一个新的 tableView 控制器并从该位置发布 50 张照片。我创建了一个 tableViewController,然后创建了一个新文件,其中包含 tableView 所需的所有文件 IE Cellforrowatindexpath。我有从主 tableViewcontroller 连接的 segue,但所有信息都存储在 newfile 中,其中包含 tableViewController 使用的方法。我是在 tableViewController 中编写 PrepareForSegue 还是将其写入具有创建表的方法的文件中?另外,如果我将它写在 tableViewCONtroller 中,如何访问动态创建的单元格之一的单元格名称?谢谢。

 -(void) prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{
    if([segue.identifier isEqualToString:@"Photos for location"]){
//I dont know what to use for the name
        [segue.destinationViewController setPhotoInPlace: WHAT DO I CALL THIS!?
    }
}

调用名称来自另一个文件,该文件使用公共 API 创建一个字典数组,其中包含名称和位置等信息。该文件名为 flickrFetcher。这是动态创建单元格的代码。self.brain 是 flickerFetcher 的一个实例,topPlaces 是从 flickrFetcher 调用以获取 NSdictionaries 的 NSArray 的方法。

      - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:    (NSIndexPath *)indexPath
{
// Create an instance of the cell
UITableViewCell *cell;
cell = [self.tableView dequeueReusableCellWithIdentifier:@"Photo Description"];

if(!cell)
    cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:@"Photo Description"];
// set properties on the cell to prepare if for displaying   
//top places returns an array of NSDictionairy objects, must get object at index and then object for key

// the cellTitle has country then province, country goes in main title and province will go as subtitle.
NSString * cellTitle = [[[[self.brain class] topPlaces] objectAtIndex:self.location] objectForKey:@"_content"]; 

NSRange cellRange = [cellTitle rangeOfString:@","];

NSString * cellMainTitle = [cellTitle substringToIndex:cellRange.location];

cell.textLabel.text = cellMainTitle;

NSString* cellSubtitle = [cellTitle substringFromIndex:cellRange.location +2];

cell.detailTextLabel.text =  cellSubtitle;
//location is an int property that allows a new selection when using objectAtIndex
self.location++;
return cell;
}
4

1 回答 1

1

prepareForSegue:是一个UIViewController方法,所以它需要在你的视图控制器中。该sender参数应该是导致 segue 的单元格。您可以使用表格视图方法indexPathForCell:来获取相关的索引路径,这应该足以找到您在实施时放入单元格的相同数据cellForRowAtIndexPath:

(我不确定您所说的“新文件”是什么意思或它实现了什么类,所以我不能说这是否会影响任何东西。)

于 2012-08-02T22:01:19.007 回答