Invece di animare s' il UIViewController
view
, sto suggerendo un approccio diverso po'.
Ho creato un dummy UIViewController
(chiamato PresentingViewController
qui sopra) il cui view.backgroundColor
è impostato su [UIColor clearColor]
. Presenterò quindi l'intestazione personalizzata UIViewController
modally (o l'animazione personalizzata se lo desideri) in alto.
Questo è il codice per la PresentingViewController
:
@implementation PresentingViewController
- (void)viewDidAppear:(BOOL)animated {
[super viewDidAppear:animated];
[self performSegueWithIdentifier:@"PresentController" sender:self];
}
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
if ([segue.identifier isEqualToString:@"PresentController"]) {
CustomViewController *controller = (CustomViewController *)[segue.destinationViewController topViewController];
controller.context = self.extensionContext;
}
}
- (IBAction)unwindFromShareVC:(UIStoryboardSegue *)segue {
[self dismissViewControllerAnimated:YES completion:^{
NSError *error = [NSError errorWithDomain:@"Cancelled" code:0 userInfo:nil];
[self.extensionContext cancelRequestWithError:error];
}];
}
@end
Note:
extensionContext
è impostato solo sul PresentingViewController
e quindi è necessario per essere trasferito al CustomViewController
.
- Per l'eliminazione di animazioni, non è stato possibile utilizzare una sequenza di svolgimento, poiché era difficile conoscere il completamento del licenziamento. Quindi ho usato invece dismissViewControllerAnimated:completion:.
fonte
2016-02-26 17:51:01
Puoi fornire alcuni dettagli sull'animazione dell'aspetto che desideri mettere in atto? –
Non posso parlare per Alvaro, ma nel mio caso voglio solo la visualizzazione della forma "normale"/la presentazione modale. Si noti che non si ha accesso al controller di visualizzazione presentativo in modo da non poter utilizzare alcune delle nuove funzionalità del controller di transizione. –
Quello che sto facendo è lasciare un BlankViewController come iniziale, che ha uno sfondo chiaro, e quindi su viewDidAppear, presento il mio controller di visualizzazione principale con l'animazione che preferisco. –