0

У меня есть UIViewController, который содержит UITableView. В представлении таблицы есть пользовательский UITableViewCell. Пользовательская ячейка была построена в построителе интерфейса и имеет наконечник. В моей основной раскадровке я перетащил segue из ячейки пользовательского табличного представления в контроллер представления назначения. Я настраивал основные компоненты костей в prepareForSegue, устанавливал точку останова, но никогда не вызывался.prepareForSegue не вызывается из UITableView в UIViewController

Я не привык использовать UITableView в контроллере вида. Обычно я использую UITableViewController, но требования диктуют использование представления таблицы в контроллере представления. Мои первоначальные предположения состоят в том, что большинство способов делать вещи будут почти одинаковыми, но я считаю, что это не так.

Я попытался установить segue из самого контроллера представления и с помощью didSelectRowAtIndexPath, и хотя он работал, переход к контроллеру представления назначения был отрывистым.

Может кто-нибудь предположить, что мне может быть недостает, чтобы вызвать метод prepareForSegue?

-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{ 
    GaugeViewController *destination = [segue destinationViewController]; 
    [destination setGaugeID:@"1"]; 
} 

Спасибо!

+1

Не могли бы вы высказать некоторые ваши вопросы? – wigging

+0

У меня нет кода для публикации в этой ситуации. Я создал segue в IB и установил точку останова в prepareForSegue, и он не называется – Pheepster

+0

. У вас должен быть код где-то в вашем проекте, так как вы вызываете 'prepareForSegue'. – wigging

ответ

-1

Вам необходимо обратиться к личности Segue в раскадровке, что-то вроде этого:

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

    GaugeViewController *destination = segue.destinationViewController; 

    if([segue.identifier isEqualToString:@"yourSegue"]) { 
     NSLog(@"prepareForSegue called"); 
     [destination setGaugeID:@"1"]; 
    }else { 
     // do something else 
    } 

} 

Также не забудьте установить идентификатор в раскадровке.

enter image description here

Помните, что нажимные перетекает используются с навигацией Контроллеры и модальный переход можно перетащить из представления контроллера для просмотра контроллера.

+0

Согласен. В настоящее время, однако, код никогда не достигает prepareForSegue, поэтому я пытаюсь просто достичь точки останова в этом методе, прежде чем переходить на – Pheepster

+0

@Pheepster. Вы назвали идентификатор Segue в раскадровке? – wigging

+0

Нет, вам действительно не нужно ссылаться на идентификатор. Часто бывает хорошей практикой, и это необходимо, если у вас есть несколько сеансов, связанных с этим контроллером. Это не вызовет проблему, которую видит ОП. – rdelmar

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