2016-05-28 14 views
0

Ich versuche, meine eigene, benutzerdefinierte UIStoryboardSegue zu schreiben, in der ein UIView 'gleitet' von sourceViewController zu destinationViewController. Derzeit habe ich den folgenden Code:Benutzerdefiniertes UIStoryboardSegue funktioniert nicht

- (void)perform { 
    UIViewController *sourceViewController = self.sourceViewController; 
    UINavigationController *navigationController = [[self sourceViewController] navigationController]; 
    RestaurantViewController *destinationViewController = self.destinationViewController; 

    destinationViewController.colors.frame = CGRectMake(0, 0, 10, 10); 

    [sourceViewController.view addSubview:destinationViewController.tables]; 

    [UIView animateWithDuration:10.0 
          delay:0.0 
         options:UIViewAnimationOptionCurveEaseInOut 
        animations:^{ 
         destinationViewController.tables.frame = CGRectMake(100, 100, 100, 100); 
        } 
        completion:^(BOOL finished){ 
         [destinationViewController.tables removeFromSuperview]; // remove from temp super view 
         [navigationController pushViewController:destinationViewController animated:NO]; // present VC 
        }]; 
} 

Als ein Test, spiele ich nur mit dem Rahmen der Tabellenansicht. Ich setzte die Dauer auf satte 10 Sekunden, damit ich alles sehen konnte. Allerdings schnappt sich die destinationViewController nur, und ignoriert den gesamten Code, den ich geschrieben habe. Was mache ich hier falsch?

Antwort

0

Hallo Ich versuche mit Ihrem Code, um diese Arbeit zu machen, aber ich habe festgestellt, dass Ihr Hauptproblem ist, dass Ihre destinationViewController.tables Null ist, warum nichts scheint zu funktionieren.

Sie müssen sichern, dass Ihr destinationViewController.tables nicht Null ist, können Sie dies mit etwas in Ihrem RestaurantViewController Klasse tun wie diese

- (instancetype)initWithCoder:(NSCoder *)coder 
     { 
     self = [super initWithCoder:coder]; 
     if (self) { 
      self.tables = [[UIView alloc]initWithCoder:coder]; 
     } 
     return self; 
     } 

Hoffnung diese Ihnen helfen. Entschuldigung für mein Englisch

Verwandte Themen