所以我想要做的是我有一個NSMutableArray的數據我需要傳遞給另一個UITableViewController。這個NSMutableArray是一個NSDictionaries數組,它包含我想要在每個表視圖單元格的標題中顯示的信息。在我繼續之前,這是我的代碼。通過performSelector從一個UITableViewController到另一個UITableViewController的數據尋找:withObject:
- (void) prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
NSIndexPath* indexPath = [self.tableView indexPathForCell:sender];
if ([segue.identifier isEqualToString:@"Title Query"]) {
UITableViewCell* cell = [self.tableView cellForRowAtIndexPath:indexPath];
NSString* cellText = cell.textLabel.text;
NSMutableArray* photosToBeShown = [self titleQuery:cellText];
if ([segue.destinationViewController respondsToSelector:@selector(setPhotoTitles:)]) {
[segue.destinationViewController performSelector:@selector(setPhotoTitles:) withObject: photosToBeShown];
NSLog(@"%@", photosToBeShown);
}
}
}
的方法setPhotoTitles:一個由performSelector叫:withObject:是我seguing,因爲我想收集陣列的財產(NSMutableArray的*)上的UITableViewController photoTitles的制定者,所以我可能再調用下面的方法來設置我的表格視圖單元格的標題。
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"Photo Title Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath];
cell.textLabel.text = [self titleForRow:indexPath.row];
return cell;
}
- (NSString *) titleForRow: (NSUInteger) row
{
return self.photoTitles[row];
}
當我運行這段代碼是我在調用我的setter方法(setPhotoTitles :)一個無限循環最終會發生什麼。現在我的問題是什麼是解決這個問題的正確的概念方式,或者我怎樣才能以這種方式實現它,而不會以無限循環結束。我有我需要在我的數組中的所有信息,但我需要將數組傳遞到新的控制器,但也能夠使用UITableViewCell方法來設置行標題。
您是否覆蓋photoTitles的setter? – rdelmar
是的,我做到了。我現在意識到這是造成我的問題,但爲什麼你不能重寫setter? – ddelnano
你應該能夠 - 你在那個方法中做了什麼? – rdelmar