2012-10-20 56 views
0

我有一個視圖,其中有2個tableviews。這個視圖有控制器PlayerDetailController 現在來控制2個tableviews我有2個其他的控制器。如何從自定義的delagate和數據源繼續

  • tablePlayersDataSourceDelegate
  • tablePlayerNewsDataSourceDelegate

我從PlayerDetail視圖CTRL-拖到新聞瀏覽做出SEGUE。在我的tablePlayerDataSourceDelegate我有以下方法來預製這個segue。

-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    [self performSegueWithIdentifier:@"showPlayerDetailNews" sender:indexPath]; 
} 

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender 
{ 
    NSIndexPath *indexPath = (NSIndexPath *)sender; 
    PlayerNews *news = [_tableSource objectAtIndex:indexPath.row]; // ask NSFRC for the NSMO at the row in question 
    if ([segue.identifier isEqualToString:@"show detail"]) { 
     [segue.destinationViewController setImageURL:[NSURL URLWithString:news.image]]; 
     [segue.destinationViewController setNewsTitle:news.title]; 
     [segue.destinationViewController setNewsDescription:news.content]; 
     [segue.destinationViewController setNewsCopy:news.image_copyright]; 
     [segue.destinationViewController setNewsUrl:news.url]; 
     [segue.destinationViewController setNewsShortDescription:news.summary]; 
    } 
} 

但是,當我測試我得到以下錯誤。

** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Receiver (<tblPlayerNewsDatasourceDelagete: 0x1e5e44c0>) has no segue with identifier 'showPlayerDetailNews'' 

我得到爲什麼這是給錯誤。因爲playerDetail視圖使用類playerDetailController,我正試圖在tablePlayerNewsDelegate類中實現te segue。你可能知道一種解決它的方法嗎?

親切的問候。

編輯 在這裏,你看到的是什麼picture我談論

所以,你可以看到在playerDetailView兩個tableviews。當單擊底部tableview中的單元格時,它應該轉到下一個視圖。

EDIT2

這是我在playerDetailController填滿我的tableview做。我把這個放在我的viewDidLoad中。

tabelPlayerNews=[[tblPlayerNewsDatasourceDelagete alloc]init]; 
[tabelPlayerNews setTableSource:_newsArray]; 
tblNews.dataSource=tabelPlayerNews; 
tblNews.delegate=tabelPlayerNews; 
tabelPlayerNews.view=tabelPlayerNews.tableView; 

回答

0

我不知道我是否理解或沒有,但一般....

要使用performSegueWithIdentifier:爲SEGUE的阻力應在控制器開始,將撥打電話,不是在視圖或其他對象。我認爲這就是錯誤信息告訴你的:假設在故事板中有一個名爲「showPlayerDetailNews」的segue,它不屬於正確的對象。

+0

好的,讓我再解釋一遍。我有一個視圖控制器,其中有2個tableviews。但是這些tableviews對於他們的數據源和代理都有一個單獨的控制器類。在那個控制器中,我使用了performSegueWithIdentifier:。但是,該控制器在故事板中沒有可視化視圖。所以我無法按Ctrl從這裏拖動它。 –

+0

我編輯了我的問題。我有你需要更多的澄清,請問。 –

+0

明白了。我的答案仍然大致相同:segue的拖動必須從某個UIViewController子類開始,並且執行segue的調用需要位於同一個子類中。 (數據源和代表的存在並不是這個機制的真正組成部分。) –