Я так устал от попыток сделать эту работу, так что я надеюсь, что кто-то здесь сможет решить эту проблему для меня ..prepareForSegue работает на тренажере, но не на устройстве
Я использую этот код, чтобы непосредственно перейти к UINavigationController , Этот код РАБОТЫ на тренажере, но НЕ на реальном устройстве:
-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
static NSString *segueIdentifier = @"ShowDetails";
if ([[segue identifier] isEqualToString:segueIdentifier]) {
NSIndexPath *indexPath = [self.tableView indexPathForSelectedRow];
UINavigationController *navigationController = segue.destinationViewController;
DetailViewController *detailViewController = [navigationController viewControllers][0];
detailViewController.selectedGameIdNumber = [NSString stringWithFormat: @"%ld", (long)indexPath.row];
detailViewController.selectedSection = [self.sectionNames objectAtIndex:indexPath.section];
}
}
На реальном устройстве он падает на:
DetailViewController *detailViewController = [navigationController viewControllers][0];
с ошибкой:
-[DetailViewController viewControllers]: unrecognized selector sent to instance
Тогда У меня есть этот код, который я попробовал. Этот код РАБОТЫ на устройстве, но НЕ на тренажере:
-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
static NSString *segueIdentifier = @"ShowDetails";
if ([[segue identifier] isEqualToString:segueIdentifier]) {
NSIndexPath *indexPath = [self.tableView indexPathForSelectedRow];
DetailViewController * detailViewController = (DetailViewController *)segue.destinationViewController;
detailViewController.selectedGameIdNumber = [NSString stringWithFormat: @"%ld", (long)indexPath.row];
detailViewController.selectedSection = [self.sectionNames objectAtIndex:indexPath.section];
}
}
На тренажере он выходит из строя на:
detailViewController.selectedGameIdNumber = [NSString stringWithFormat: @"%ld", (long)indexPath.row];
с ошибкой:
-[UINavigationController setSelectedGameIdNumber:]: unrecognized selector sent to instance 0x7fa1d273e8
я делаю что-то неправильно или я должен просто запустить со вторым кодом, который работает на реальном устройстве? Я хочу иметь чистое решение, поэтому, пожалуйста, просветите меня, если я делаю что-то неправильно. Спасибо вам всем.
Какой симулятор/IOS версия и версия устройства/IOS? Я подозреваю, что ответ заключается в том, что вам придется защищать код для обеих ситуаций (т. Е. Проверить класс контроллера представления назначения с помощью 'isKindOfClass:' и обрабатывать каждый случай соответственно). – pbasdf
Цель развертывания установлена в 7.1 для симулятора, и мое устройство работает на IOS 7.1.1 iPhone 5s @pbasdf –
Является ли и симулятор 7.1? (цель развертывания - это нечто иное). Какое устройство моделируется? – pbasdf