UITableViewCell向上移动自定义segue出现/关闭
问题描述:
我有一个MasterViewController,使用自定义模态segue,呈现一个详细视图。自定义模态动画是来自GitHub上mluisbrown的LCZoomTransition。目前,我遇到了一个问题,导致我的tableview的单元格在选择时向上移动。 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;
}
任何人都知道可能会导致什么呢?这是在iOS 8和Xcode的6
什么是应该的样子:
答
在我看来,你是复制多个控制器。
在didSelectRowAtIndexPath
应该包含调用segue。
然后只创建一个实例的viewController
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
[self performSegueWithIdentifier:@"pushToEdit" sender:self];
}
就是这样的,你做的SEGUE委托休息,避免重复实例。
+0
刚刚尝试过,仍在发生。查看帖子,了解它应该是什么样子的gif – 2014-10-17 02:23:04
@meda它可能不会在gif中显而易见,但UITableViewCell在转换时向上移动(包括细节和背面),不正常 – 2014-10-17 01:58:27
但是,您是否得到实际的布局错误或者是否意味着问题?我只能注意到右边的UIBarButton移动了一点点 – meda 2014-10-17 02:01:01
@meda不,我意识到我的措辞在原评论中是错误的。 UITableViewCell向上移动,这不应该发生在这个转换中。我会发布一个应该发生的事情的GIF。 – 2014-10-17 02:01:56