背景:I在应用程序中有表1和表2,开始视图是表1,
要实现什么:用户向右滑动,然后从左到右滑动视图,并显示表2
My方法:
我的自定义密码如下:
UIViewController* source = (UIViewController *)self.sourceViewController;
UIViewController* destination = (UIViewController *)self.destinationViewController;
CGRect sourceFrame = source.view.frame;
sourceFrame.origin.x = sourceFrame.size.width;
CGRect destFrame = destination.view.frame;
destFrame.origin.x = -destination.view.frame.size.width;
destination.view.frame = destFrame;
destFrame.origin.x = 0;
[source.view.superview addSubview:destination.view];
[UIView animateWithDuration:0.5
animations:^{
source.view.frame = sourceFrame;
destination.view.frame = destFrame;
}
completion:^(BOOL finished) {
UIWindow *window = source.view.window;
[window setRootViewController:destination];
}];我怀疑这是由于完成代码: setRootViewController:destination窗口,因为表1和表2使用的是uitableviewcontroller而不是uiviewcontroller,,我尝试将上面代码中的uiviewcontroller更改为uitableviewcontroller,但仍然不能工作。
有人知道怎么解决这个问题吗?源代码可以在这里下载http://d.pr/f/tAkc
发布于 2013-12-04 10:45:20
我自己找到了答案:解决方案是删除源代码中的导航控制器。
我在开始时添加了导航控制器,因为我使用了推送(swip左/右到后/前),当我尝试定制的segue动画时,导航控制器仍然存在。
无论如何,这是最后的源代码http://d.pr/f/ewOa,您可以从表视图1到2左右滑动,而不会崩溃。
发布于 2013-11-25 16:18:20
所以..。对不起,我之前的回答,但我不能发表评论与我的实际声誉。
将该视图推到另一个视图后,黑色视图的问题出现在您的segue中。
尝试删除以下代码:
completion:^(BOOL finished) {
UIWindow *window = source.view.window;
[window setRootViewController:destination];如果我删除它,segue是完整的,第二个表仍然存在,但另一个问题是,您不能滑动回第一个表。
https://stackoverflow.com/questions/20188149
复制相似问题