嘿我正在处理一个在动态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调用的方法,用于获取NSdictionr的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;
}
答案 0 :(得分:1)
prepareForSegue:
是UIViewController
方法,因此需要在视图控制器中。 sender
参数应该是导致segue的单元格。您可以使用表格视图方法indexPathForCell:
来获取相关的索引路径,这应该足以找到您在实施cellForRowAtIndexPath:
时放入单元格的相同数据。
(我不确定你的意思是“新文件”或它实现的类,所以我不能说这是否会影响任何东西。)