perform for ios objective-c storyboard segue uistoryboardsegue

ios - for - Segues iniciados directamente desde la vista de los controladores de advertencia en storyboard xcode



perform segue swift 4 (4)

Hola, he creado el botón programáticamente y lo conecté a otra vista, pero recibí una advertencia de seguridad.

que debería usar el método prepareForSegue para el guión gráfico, pero no sé cómo, hay algunos ejemplos en Internet, pero me aparece un error cuando utilicé ese ejemplo, ¿podría ayudarme?

aqui esta mi codigo

Botón de creación

UIButton * button = [UIButton buttonWithType:UIButtonTypeCustom]; button.backgroundColor=[UIColor colorWithRed: 201.0/255.0 green: 201.0/255.0 blue:201.0/255.0 alpha: 1.0]; button.tag = currentTag; currentTag++; [button.layer setBorderColor: [[UIColor blackColor] CGColor]]; [button.layer setBorderWidth: 1.0]; [button setTitle:[NSString stringWithFormat:@"%d",currentTag] forState:UIControlStateNormal]; button.frame = CGRectMake(80*x, 32*y, 80, 32); [button addTarget:self action:@selector(buttonPressed:) forControlEvents:UIControlEventTouchUpInside]; [buttonView addSubview: button];

Acción para el botón

-(void)buttonPressed:(UIButton *)button { NSLog(@"button %u -- frame: %@", button.tag, NSStringFromCGRect(button.frame)); [self performSegueWithIdentifier:@"WeekView" sender:self]; }

Prepararse para segue MI Advertencia

Los segmentos iniciados directamente desde los controladores de vista deben tener un identificador para usar con - [UIViewController performSegueWithIdentifier: sender:]

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { if ([[segue identifier] isEqualToString:@"WeekView"]) { [segue.destinationViewController setTitle:@"WeekView"]; } }


En Xcode 5 hice que desapareciera esta advertencia al nombrar no solo los segmentos sino también los controladores de vista a los que conducen: cada controlador de vista necesita una ID de guión gráfico. Si solo nombras los segues, esta advertencia (engañosa) seguirá apareciendo.


Esto fue resuelto mi problema.

Vaya a Guión gráfico> Verificar todas las relaciones de Push o Pop.

Seleccione cada relación segue> Comprobar propiedades del inspector de atributos> Sección Segue del guión gráfico

En esa sección se da identificador para todos los segue.


Tuve la misma advertencia. Debe verificar cada segmento si tiene un identificador como XCool dijo.

Xcool: También tuve este problema al mirar hacia atrás en un proyecto anterior. Tuve que hacer clic en cada segmento del guión gráfico y comprobar si se origina desde un controlador de vista. Si lo es, entonces le doy un identificador.

También revisa tu desenvolver segues! Esto resolvió mi problema.


Los segmentos iniciados directamente desde los controladores de vista deben tener un identificador para usar con - [UIViewController performSegueWithIdentifier:sender:]

Esta advertencia se produce cuando arrastra un segmento directamente desde un Controlador de vista en el Guión gráfico (también conocido como, no desde un botón o cualquier control de acción) y no escribe un Identificador (Nombre).

Debes darles un identificador o, de lo contrario, no hay forma de llamarlos programáticamente ... esa es la única razón por la que vinculas un segmento como este.

En Xcode 8, deberías poder hacer doble clic en la advertencia para que el guión gráfico muestre el segmento ofensivo para que puedas agregarle un nombre.