вставить текст строки в переменную - PullRequest
0 голосов
/ 10 ноября 2010
NSString *stalklabel = ;

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

У меня есть код выше, и мне нужно знать, как получить значение строки, в которую пользователь нажал stalklabel. Я использую Основные данные, чтобы заполнить таблицу; это все усложняет?

EDIT:

К сожалению, уточнить:

Я имею это в виду1:

- (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];   
}

поэтому, когда пользователь нажимает строку и отправляется на view2, view2 использует другой класс для заполнения представления. Мой оригинальный код с URL находится в другом классе. Поэтому мне нужно перенести текстовое значение строки в переменную другого класса и вставить его в URL, чтобы я мог заполнить view2 соответствующими данными; это имеет смысл?

Ответы [ 2 ]

1 голос
/ 10 ноября 2010

Если ячейка выбрана, она вызовет метод делегата tabelView tableView:didSelectRowAtIndexPath:

Вы получите indexPath.Если вы используете fetchedResultsController (и вы должны использовать CoreData), вы можете просто сделать

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

См. Пример кода CoreDataBooks

edit
Что касается вашего кода, у вас, похоже, есть Super-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];    
}

В -viewDidLoad: вашего NewsDetailViewController вы можете настроить представление с данными из вашего новостного объекта.

1 голос
/ 10 ноября 2010

Использование stringWithFormat:

NSURL *url = [NSURL URLWithString:[NSString stringWithFormat:@"http://news.search.yahoo.com/rss?ei=UTF-8&p=%@&fr=news-us-ss", stalklabel]];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...