2013-04-18 4 views
3

У меня есть проблема с Segue при нажатии на ячейку и пытается передать свою дату DetailViewControllerPrepareForSegue Tableview вопрос

Я не нашел здесь ответы на мой вопрос, поэтому я прошу здесь.

Вот мой метод:

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { 

// NSLog(@"Source Controller = %@", [segue sourceViewController]); 
// NSLog(@"Destination Controller = %@", [segue destinationViewController]); 
// NSLog(@"Segue Identifier = %@", [segue identifier]); 


     NSIndexPath *indexPath = [self.tableView indexPathForSelectedRow]; 
     if (indexPath){ 
     lastNews *item = [news objectAtIndex:indexPath.row]; 
     [segue.destinationViewController setDetail:item]; 
     NSLog(@"%@", item.title); 

    } 

} 

если я удалю, если условие только и оставить свой код, как это:

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { 

    // NSLog(@"Source Controller = %@", [segue sourceViewController]); 
    // NSLog(@"Destination Controller = %@", [segue destinationViewController]); 
    // NSLog(@"Segue Identifier = %@", [segue identifier]); 


      NSIndexPath *indexPath = [self.tableView indexPathForSelectedRow]; 
      lastNews *item = [news objectAtIndex:indexPath.row]; 
      [segue.destinationViewController setDetail:item]; 
      NSLog(@"%@", item.title); 



    } 

мои данные могут быть переданы, но всегда только первую ячейку.

Если я реализую его, как это:

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { 


    if ([[segue identifier] isEqualToString:@"detailNews"]) { 
     NSIndexPath *indexPath = [self.tableView indexPathForSelectedRow]; 
     //if (indexPath){ 
     lastNews *item = [news objectAtIndex:indexPath.row]; 
     [segue.destinationViewController setDetail:item]; 
     NSLog(@"%@", item.category); 

    } 

} 

он будет посылать, но всегда название новости и всегда из первых новостей. (NSLOG только для проверки)

Я знаю, что он получает все значения, я проверил его NSLOG, а не только заголовок.

Для вашей информации у меня всегда были последние 20 новостей, проанализированных с веб-сайта Это работает, и мои ячейки заполнены новостями.

Не могли бы вы предложить мне, где я ошибаюсь?

Спасибо

ответ

8

если «отправитель» является клетка, которая звонит на это, вы можете сделать:

NSIndexPath *indexPath = [[self tableView] indexPathForCell:sender]; 
lastNews *item = [news objectAtIndex:indexPath.row]; 
[segue.destinationViewController setDetail:item]; 
+0

К сожалению, я пробовал это и получил то же самое. только название первой отправки новостей, но, согласно моему NSLOG, я ничего не получил в подробном диспетчере представлений. мой слог говорит, что все null: 2013-04-18 20: 50: 12.972 IsraelNews [42293: c07] (null) '2013-04-18 20: 50: 12.984 IsraelNews [42293: c07] (null) 2013-04 -18 20: 50: 12.985 IsraelNews [42293: c07] (null) 2013-04-18 20:50: 12.985 IsraelNews [42293: c07] (null) 2013-04-18 20:50: 12.985 IsraelNews [42293] : c07] (null) 2013-04-18 20: 50: 12.986 IsraelNews [42293: c07] (null) ' – Anton

+0

Думаю, теперь это работает, но отчасти. Я просто отправлю его в свой метод setDetail, но там что-то сделал. теперь он получает данные, но все еще только первые новости из моей 20. любой ячейки, которую я нажимаю, и она возвращает мне только первые новости. – Anton

+1

Хорошо, я думаю, что решил свой последний выпуск. Я забыл подключить свой IBOUTLET Tableview к моему контроллеру view. Вот так - Антон сейчас редактирует – Anton

2

Хорошо, я думаю, что я решил мой последний вопрос. Я забыл подключить свой IBOUTLET Tableview к моему контроллеру view. Вот так

Смежные вопросы