2016-05-28 8 views
0

Я пытаюсь написать свой собственный, пользовательский UIStoryboardSegue, в котором UIView «скользит» от sourceViewController до destinationViewController. В настоящее время у меня есть код ниже:Пользовательский UIStoryboardSegue не работает

- (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 
        }]; 
} 

В качестве теста я просто играю с рамкой просмотра таблиц. Я также назначил продолжительность целых 10 секунд, чтобы я мог видеть все. Тем не менее, destinationViewController просто щелкает на место, полностью игнорируя весь код, который я написал. Что я здесь делаю неправильно?

ответ

0

Здравствуйте, я пытаюсь с вашим кодом сделать эту работу, но я обнаружил, что ваша основная проблема заключается в том, что ваш destinationViewController.tables ничтожно, поэтому ничего не работает.

Вы должны обеспечить, что ваш destinationViewController.tables не нолем, то вы можете сделать это в вашем RestaurantViewController классе что-то вроде этого

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

Надеется, что это поможет вам. Извините за мой английский

Смежные вопросы