繁体   English   中英

自定义Segue推送怪异行为

[英]Custom Segue push weird behavior

我正在尝试一个简单的项目(故事板),其中用户从右向左滑动以进入下一个视图,依此类推,然后返回用户从左向右滑动。 我想实现转换以跟随滑动(L-> R或R-> L)。

我发现了这一点:

-(void)perform {

    UIViewController *sourceViewController = (UIViewController*)[self sourceViewController];
    UIViewController *destinationController = (UIViewController*)[self destinationViewController];

    CATransition* transition = [CATransition animation];
    transition.duration = .25;
    transition.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];
    transition.type = kCATransitionPush; //kCATransitionMoveIn; //, kCATransitionPush, kCATransitionReveal, kCATransitionFade
    transition.subtype = kCATransitionFromLeft; //kCATransitionFromLeft, kCATransitionFromRight, kCATransitionFromTop, kCATransitionFromBottom



    [sourceViewController.navigationController.view.layer addAnimation:transition
                                                                forKey:kCATransition];

    [sourceViewController.navigationController pushViewController:destinationController animated:NO];

}

但这似乎并没有做应该做的事情。

说明:

当即时消息处于风景中时(我的项目仅在风景中起作用)并且主页按钮位于左侧,动画来自顶部!!! 当我在风景中并且主页按钮在右边时,动画来自底部!

尽管我已将其指定为从左开始。 另一件事是,当我使用不同的风景(左侧或右侧的homebutton)时,它会改变方向。

任何想法为什么会这样???

好的,这是我的做法,尽管非常不合常规。

我先检查iPad的方向,然后而不是实际向左或向右走,而实际上是去往顶部/底部...好吧,这是我的做法,尽管非常不合常规。

我先检查iPad的方向,然后不去左右,而是直接去顶部/底部...

if([UIApplication sharedApplication].statusBarOrientation == UIInterfaceOrientationLandscapeLeft)
{
      //Landscape Left

//.......
       transition.subtype = kCATransitionFromTop;

}
else if([UIApplication sharedApplication].statusBarOrientation == UIInterfaceOrientationLandscapeRight)
{
      //Landscape Right

//......
       transition.subtype = kCATransitionFromBottom;

}

您的意见是否在导航控制器中? 您是否尝试过简单地使用“推”式segue?

在滑动手势识别器中,只需调用:

[self performSegueWithIdentifier:@"NextScreenIdentifier" sender:sender];

并且您应该获得正确的行为(左→右/右→左过渡)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM