Mam uniwersalną aplikację, w której współużytkuję ten sam kontroler dla storyboardów IPad i IPhone. mam umieścić UILongPressGestureRecognizer na UITableView, że gdy komórka jest wciśnięty na iPhone wywołuje czynność, którą przeprowadzić segue:Funkcja prepareForSegue nie jest wywoływana po performSegue: withIdentifier: ze stylem popover
-(IBAction)showDetail:(id)sender {
UILongPressGestureRecognizer *gesture = (UILongPressGestureRecognizer*)sender;
if (gesture.state == UIGestureRecognizerStateBegan) {
CGPoint p = [gesture locationInView:self.theTableView];
NSIndexPath *indexPath = [self.theTableView indexPathForRowAtPoint:p];
if (indexPath != nil) {
[self performSegueWithIdentifier:SEGUE_DETAIL sender:indexPath];
}
}
}
segue szczegółowy widok występował jako „push”. Pierwszą rzeczą, którą powinieneś zauważyć, jest to, że nadawca jest NSIndexPath, to jedyny sposób, jaki znalazłem dla przekazania wybranej komórki. Może jest lepsze rozwiązanie. Wszystko działa dobrze, w tym sensie, że odbywa się segue i przed wywołaniem funkcji prepareForSegue.
Zdarza się jednak, że na iPadzie zmieniłem identyfikator seg-up na Popover. Teraz rzeczy działają częściowo, przejście jest wykonywane, ale funkcja prepareForSegue nie jest wywoływana, dlatego kontroler widoku docelowego nie jest skonfigurowany tak, jak powinien.
Co robię źle?
Mam ten sam problem. viewdidload jest wywoływany, ale nie działa segue – 1dayitwillmake