Sto provando a completare un'applicazione su IOS 5.1 con Storyboard. Fondamentalmente sto facendo un'app dropbox. Dal momento che sto usando il link Dropbox SDK a Dropbox viene gestito in AppDelegate.m. L'utente ha la possibilità di essere in grado di scollegare da una sessione e collegarsi di nuovo in diversi View Controller. Quindi, tutti i link all'utente tempo e applicazione scollegato deve cambiare la visualizzazione da AppDelegate a un controller di vista che è estraneo a RootViewControllerCome eseguire Segue in AppDelegate?
In originale esempio di Dropbox Dropbox ha gestito la transizione come codice seguente
- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url {
if ([[DBSession sharedSession] handleOpenURL:url]) {
if ([[DBSession sharedSession] isLinked]) {
[navigationController pushViewController:rootViewController.photoViewController animated:YES];
}
return YES;
}
return NO;
}
ma sto usando Storyboard con Il controller di navigazione e uno dei seguenti metodi non funzionano. Inserisco i metodi nei commenti.
- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url {
if ([[DBSession sharedSession] handleOpenURL:url]) {
if ([[DBSession sharedSession] isLinked]) {
NSLog(@"App linked successfully!");
// At this point you can start making API calls
/*UIViewController *viewController = [[UIStoryboard storyboardWithName:@"MainStoryboard" bundle:NULL] instantiateViewControllerWithIdentifier:@"MeetingViewController"];
[self.navigationController pushViewController:viewController animated:YES]; */
//[self performSegueWithIdentifier:@"xxxx" sender:self];
/* LoginDropboxViewController *loginController=[[LoginDropboxViewController alloc] initWithNibName:@"LoginDropbox" bundle:nil];
[navigationController pushViewController:loginController animated:YES]; */
}
return YES;
}
// Add whatever other url handling code your app requires here
return NO;
}
Ecco lo storyboard delle app
Allora, come posso cambiare la visualizzazione in AppDelegate.h?
Nota: se aggiungo un seguito e un nome al seguito, diciamo goToMeeting [self performSegueWithIdentifier: @ "goToMeeting" mittente: self];
errore che ottengo è: No Visible @interface for 'AppDelegate' declares the selector performSegueWithIdentifier:sender
Ma cosa posso fare se devo passare i dati dei parametri alla chiamata performSegueWithIdentifier. Nel delegato dell'app non c'è il ViewController, quindi non posso sovrascrivere la chiamata prepareForSegue()? – ChaosSpeeder