2012-05-08 10 views
5

Così ho iniziato a giocare con gli storyboard in XCode 4.3.2. Ho iniziato con l'applicazione Master-Detail (applicazione di visualizzazione divisa per iPad). Nella vista di dettaglio (denominata DetailVC) ho una vista in cui ho visualizzato una serie di viste personalizzate.XCode Storyboard: come creare un seguito quando il trigger di follow non è sullo storyboard

Le viste personalizzate (denominate GridView) hanno un riconoscitore di gesti di tocco che dovrebbe gestire l'evento di tocco su ciascuna visualizzazione personalizzata. Toccando un GridView si spinge un controller di visualizzazione mostra alcuni risultati di ricerca (denominati SearchResultsVC).

Con GridView creato in un file pennino in parte, e la DetailVC e SearchResultsVC risiedono in storyboard, come posso creare una spinta segue con destinazione SearchResultsVC? Ho appena creato un seguito tra DetailVC e SearchResultsVC? È in qualche modo possibile attivare questo passaggio programmaticamente dall'interno della classe GridView quando viene riconosciuto il gesto del tocco ????

risposta

7

Nel metodo in cui si gestisce l'uso del rubinetto:

[auto performSegueWithIdentifier: @ "yourSegueIdentifier" mittente: self];

Nel controllo StoryBoard trascina dal tuo DetailVC al tuo SearchResultVC e scegli il tipo di sequenze che desideri. Assicurati di nominare il tuo identificatore dei passi uguale a quello del metodo sopra nell'ispettore degli attributi.

sarò cercare di migliorare la mia risposta ho messo in su penso:

1) Nella tua DetailVC.h creare una variabile di istanza per il GridView come questo

IBOutlet UIView * gridView; 

anche creare un metodo getter e un IBAction per la visualizzazione a griglia come questo

-(UIView *)gridView; 
-(IBAction)myGridGotPressed:(id)sender; 

2) Ora nel tuo DetailVC.m implementare i metodi come questo

-(UIView *)gridView{ 
if(!gridView){ 
[[NSBundle mainBundle] loadNibNamed:@"GridView" owner:self options:nil]; 
} 
return gridView; 
} 

implementare anche il vostro IBAction come questo

-(IBAction)myGridGotPressed:(id)sender{ 
[self performSegueWithIdentifier:@"yourSegueIdentifier" sender:self]; 
} 

3) Per fare questo lavoro è necessario cambiare la classe filesOwner del GridView per DetailVC e poi collegare le prese e azioni come normale.

Spero che questo aiuti.

+1

la vista griglia dovrebbe passare il tocco indietro al DetailVC. Le sottoclassi di UIView non possono eseguire segues. – jrturton

+0

Suppongo che DetailVC abbia il metodo per gestire il tocco tramite IBAction o il proprio protocollo. –

+0

@jrturton - Come devo fare per passare il tocco a DetailVC? Utilizzo dei delegati: in che modo otterrei un riferimento a DetailVC in quel caso (le viste non dovrebbero conoscere i controller di visualizzazione, giusto?) – vikmalhotra

Problemi correlati