2014-10-17 5 views
0

У меня есть MasterViewController, используя специальный модальный сегмент, представляет подробный вид. Пользовательская модальная анимация - LCZoomTransition из mluisbrown на GitHub. В настоящее время у меня возникает проблема, из-за которой ячейки tableview меняются вверх при выборе. Maybe AutoLayout?UITableViewCell смещается с пользовательским segue появляется/увольняется

Я понятия не имею, что может быть причиной этого. Мой код представить подробный вид:

-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{ 

    EditViewController *edit = [[EditViewController alloc]init]; 

    NSManagedObjectContext *mo = [_fetchedResultsController objectAtIndexPath:indexPath]; 
    [edit setManagedObjectContext:mo]; 



    id appDelegate= [[UIApplication sharedApplication] delegate]; 
    self.managedObjectContext = [appDelegate managedObjectContext]; 


    OweInfo *info = [_fetchedResultsController objectAtIndexPath:indexPath]; 

    self.editView = edit; 


    self.editView.delegate = self; 
    self.editView.info = info; 

    edit.info = info; 
    edit.delegate = self; 
    edit.managedObjectContext = [appDelegate managedObjectContext]; 



    self.editView.managedObjectContext = [appDelegate managedObjectContext]; 
[self performSegueWithIdentifier:@"pushToEdit" sender:self]; 



} 

и мой переход код:

if([segue.identifier isEqual: @"pushToEdit"]){ 


     NSIndexPath *indexPath = [self.tableView indexPathForSelectedRow]; 
     self.zoomTransition.sourceView = [self.tableView cellForRowAtIndexPath:indexPath]; 
       // pass the custom transition to the destination controller 
     // so it can use it when setting up its gesture recognizers 
     [[segue destinationViewController] setGestureTarget:self.zoomTransition]; 
    EditViewController *edit = segue.destinationViewController; 

     NSManagedObjectContext *mo = [_fetchedResultsController objectAtIndexPath:indexPath]; 
     [edit setManagedObjectContext:mo]; 


     id appDelegate= [[UIApplication sharedApplication] delegate]; 
     self.managedObjectContext = [appDelegate managedObjectContext]; 


     OweInfo *info = [_fetchedResultsController objectAtIndexPath:indexPath]; 
      self.editView = edit; 


     self.editView.delegate = self; 
     self.editView.info = info; 
    self.editView.managedObjectContext = self.managedObjectContext; 
    edit.managedObjectContext = self.managedObjectContext; 

     edit.info = info; 
     edit.delegate = self; 





    } 

Кто знает, что может быть причиной этого? Это на 8 прошивке и Xcode 6.

Что он должен выглядеть следующим образом: Workin

+0

@meda это может быть не очевидно в gif, но UITableViewCell сдвигается вверх при переходе (как на детали, так и обратно), а не на нормальный –

+0

Но вы получаете фактическую ошибку макета или вы имели в виду проблему? Я могу заметить только правильное движение UIBarButton – meda

+0

@meda no, я понимаю, что моя формулировка была неправильной в исходном комментарии. UITableViewCell сдвигается, что не должно происходить при этом переходе. Я отправлю Gif из того, что должно произойти. –

ответ

0

Мне кажется, вы копируете несколько контроллеров.

В didSelectRowAtIndexPath должен содержаться призыв к переходу.

Затем создать только один экземпляр ViewController

-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{ 
    [self performSegueWithIdentifier:@"pushToEdit" sender:self]; 
} 

Вот именно, вы делаете все остальное в SEGUE делегатом, и во избежание дублирования экземпляров.

+0

просто попробовал, все еще происходит. См. Сообщение для gif о том, как он должен выглядеть –

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