2012-05-31 12 views
6

Sto lavorando su storyboard che ha paio di punti di vista a prima vista una condizione viene posta voglio se le soddisfa la condizione allora solo la navigazione dovrebbero accaderecome applicare condizione basata segue personalizzato in storyboard

Per questo ho utilizzato su misura segue ma non importa se le mie condizioni soddisfano o no naviga verso una nuova vista.

ho creato Metodo della classe segue personalizzato

- (void) perform{ 

    NSLog(@"source %@",self.sourceViewController); 
    NSLog(@"dest %@",self.destinationViewController); 

    UIViewController *sVC=self.sourceViewController; 
    UIViewController *dVC=self.destinationViewController; 

    [sVC.navigationController pushViewController:dVC animated:YES]; 


} 

voglio impostare condizioni se il risultato è 1, allora solo dovrebbe navigare. Woul prepareforsegue o initwithsegue mi fornisce aiuto

+0

Formatta il tuo codice. –

risposta

30

Stai dicendo che vuoi solo eseguire il seguito se una condizione è vera?

In tal caso, anziché creare il passaggio direttamente da una cella di controllo o di tabella, creare un seguito senza innesco. Un seguito senza trigger ha come sorgente il controller della vista e non si avvierà mai automaticamente. Invece puoi sparagli programmaticamente ogni volta che vuoi, anche da un IBAction.

Per creare un seguito senza trigger, avviare il controllo + trascinando il seguito dall'icona del controller della vista contenente nella scena nella parte inferiore della scena. Trascina nella scena di destinazione come normale e seleziona il tipo di seguito. Seleziona il seguito e, nell'ispettore, scegli un identificatore dei passaggi.

In fase di esecuzione, quando si desidera eseguire il seguito, richiamare - [UIViewController performSegueWithIdentifier: mittente:]. Puoi passare qualsiasi oggetto che desideri per il mittente, incluso zero. Se il mittente non ti ha utilizzato, passa a zero.

Così, in sintesi:

  • Creare un segue grilletto dal controller della vista per la scena di destinazione
  • Impostare un identificatore per il segue nella finestra di ispezione
  • In fase di esecuzione, e il codice di modulo, chiamata - [UIViewController performSegueWithIdentifier: mittente:] quando si desidera attivare il seguito.
+0

Grazie per la tua risposta, ma potresti dirmi che il movimento che trascino da sorgente a destinazione mi mostra push, modal, custom e seleziono l'abitudine e do questo seguito un identificatore Ma come ho impostato il suo identificatore allora con forza chiama il metodo della classe follows al clic del pulsante come verificherà la condizione –

+0

Ciao Jon, ho applicato come hai detto e ora spinge due volte ho creato un push seguito e l'ho impostato quando clicco sul pulsante che ho scritto [UIViewController performSegueWithIdentifier: sender:] method [self performSegueWithIdentifier: @ "JHCustomSegue" mittente: nil]; puoi per favore chk wat sto sbagliando qui –

+3

Ciao finalmente ho trovato la soluzione Spero di aiutare gli altri Puoi eseguire manualmente i segui. Quando si crea un seguito nello storyboard, invece di Ctrl + trascinamento da un pulsante a un controller di visualizzazione, trascinare dal controller di visualizzazione a un altro controller di visualizzazione. Dai un nome al seguito, poi nel tuo codice chiami [self performseguewithidentifier @ "seguename"] –