В моем приложении у меня есть один UITableViewController
(Uctovatrida0TableViewController) и два других UIViewContoller
(DetailViewController и примеры).Прохождение indexPath из UITableView
Теперь у меня есть проблема, потому что я не знаю, как идентифицировать индекс (от indexPath.row
) в моем первом UIViewController
, чтобы потом правильно ссылаться на другой UIViewController
.
код в моем Uctovatrida0TableViewController.m (работает хорошо):
-(void) showDetailsForIndexPath:(NSIndexPath*)indexPath
{
[self.searchBar resignFirstResponder];
DetailViewController* vc = [self.storyboard instantiateViewControllerWithIdentifier:@"DetailsViewController"];
Ucty* ucet;
if(isFiltered)
{
ucet = [_filteredTableData objectAtIndex:indexPath.row];
}
else
{
ucet = [self.alldataArray objectAtIndex:indexPath.row];
}
vc.uctyItem = ucet;
[self.navigationController pushViewController:vc animated:true];
}
код в моем классе DetailViewConroller, где мне нужно indexPath от Uctovatrida0TableViewController.m
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
if ([[segue identifier] isEqualToString:@"Priklad"])
{
Priklad *vc = [segue destinationViewController];
Ucty* ucet;
//of course this does not work
ucet = [self.alldataArray objectAtIndex:NSIndexPath.row];
vc.uctyItem = ucet;
[self.navigationController pushViewController:vc animated:true];
}
}
Код в мой класс Priklad.m:
- (void)setDetailItem:(id)newDetailItem
{
if (self.uctyItem != newDetailItem)
{
self.uctyItem = newDetailItem;
[self configureView];
}
}
- (void)configureView
{
if (self.uctyItem) {
self.prikladLabel.text = self.uctyItem.priklad;
self.uctykprikladu.text = self.uctyItem.uctykprikladu;
}
}
Спасибо, но почему выход в классе Priklad нуля? – Alien
Если вы сделаете так, как я предложил выше, вы вызываете 'setUctyItem:' not 'setDetailItem:', поэтому 'configureView' не вызывается. – johnpatrickmorgan
Конечно, моя ошибка. Я попытался использовать его таким образом, но результат все еще (null): - (void) setUctyItem: (Ucty *) uctyItem {if (self.uctyItem! = UctyItem) {self.uctyItem = uctyItem; [self configureView];}} – Alien