2010-11-10 56 views
0
NSString *stalklabel = ; 

NSURL *url = [NSURL URLWithString:@"http://news.search.yahoo.com/rss?ei=UTF-8&p=%@&fr=news-us-ss", stalklabel]; 

我有上面的代碼,我需要知道如何獲取用戶按下的行的值stalklabel。我使用核心數據來填充表格;這會讓事情變得複雜嗎?將行文本插入變量

編輯:

對不起,澄清:

我有這樣的廠景:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { 
    [[self appDelegate] setCurrentlySelectedBlogItem:[[[self rssParser]rssItems]objectAtIndex:indexPath.row]]; 
    //[self.appDelegate loadNewsDetails]; 

    NewsDetailViewController *newsDetail = [[NewsDetailViewController alloc] initWithNibName:@"NewsDetailViewController" bundle:nil]; 
    //NSManagedObject *selectedObject = [[self fetchedResultsController] objectAtIndexPath:indexPath]; 
    // ... 
    // Pass the selected object to the new view controller. 
    //newsDetail.titleTextView.text = [[[self appDelegate] currentlySelectedBlogItem]title]; 
    //newsDetail.descriptionTextView.text = [[[self appDelegate] currentlySelectedBlogItem]description]; 
    [self.navigationController pushViewController:newsDetail animated:YES]; 
    [newsDetail release]; 
} 

所以當用戶按下行被髮送到視圖2,視圖2使用另一個類來填充視圖。我與URL的原始代碼駐留在另一個類中。所以我需要將行文本值傳遞給其他類中的變量並將其插入到URL中,以便可以將view2填入相關數據;那有意義嗎?

+1

嗯,似乎雅各布和我完全理解你的問題不同。你能澄清一下,如果你需要了解NSString操作或UITableViewCells及其代表的數據的映射嗎? – vikingosegundo 2010-11-10 18:42:38

回答

1

如果單元格被選中,它tabelView將調用其委託的方法tableView:didSelectRowAtIndexPath:

你得到的indexPath。如果您使用fetchedResultsController(你應該與CoreData),你可以簡單地做

YourClass *object = (YourClass *)[[self fetchedResultsController] objectAtIndexPath:indexPath]; 
NSString *aString = object.text; 

CoreDataBooks example code

編輯
關於你的代碼,你似乎有一種「超級AppDelegate中」。這不是必需的。

您的NewsDetailViewController應該有一個屬性指向該對象。像news

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 
{ 

    NewsDetailViewController *newsDetail = [[NewsDetailViewController alloc] initWithNibName:@"NewsDetailViewController" bundle:nil]; 
    NSManagedObject *selectedObject = [[self fetchedResultsController] objectAtIndexPath:indexPath]; 
    newsDetail.news = selectedObject; 
    [self.navigationController pushViewController:newsDetail animated:YES]; 
    [newsDetail release];  
} 

在你NewsDetailViewController你可以設置與你的消息對象的數據視圖的-viewDidLoad:

+0

RssFunViewController * object =(RssFunViewController *)[[self fetchedResultsController] objectAtIndexPath:indexPath]; NSString * aString = object.text; rssParser.stalklabel.text = aString; – benhowdle89 2010-11-10 19:02:09

+0

爲什麼上述不工作的任何原因? rssParser是一個指向具有URL內容的類的指針 – benhowdle89 2010-11-10 19:02:36

+0

從名稱RssFunViewController我建議,它不是NSManagedObject或它的一個後裔。 NSManagedObject * selectedObject = [[self fetchedResultsController] objectAtIndexPath:indexPath];看起來不錯 – vikingosegundo 2010-11-10 19:18:51

1

使用stringWithFormat:

NSURL *url = [NSURL URLWithString:[NSString stringWithFormat:@"http://news.search.yahoo.com/rss?ei=UTF-8&p=%@&fr=news-us-ss", stalklabel]]; 
+1

謝謝,那有點排序! – benhowdle89 2010-11-10 18:26:45

+0

'stringWithFormat:'不需要'nil'哨兵。 :) – 2010-11-10 18:46:27

+0

@Dave,真的。無論如何,我習慣於使用它,所以我堅持它。 :-) – 2010-11-10 18:48:05