【问题标题】:Custom IOS7 Transition passing data to presenting View Controller自定义 IOS7 转换将数据传递到呈现视图控制器
【发布时间】:2014-01-13 23:01:31
【问题描述】:

我正在考虑实现一些自定义 IOS7 转换。对于example these here

在此示例中按下按钮时,将运行以下命令:

-(void)showNewController:(id)sender{
    
    UIStoryboard* storyboard = [UIStoryboard storyboardWithName:@"Main_iPhone" bundle:[NSBundle mainBundle]];
    UIViewController* controller = [storyboard instantiateViewControllerWithIdentifier:@"PresentedViewController"];

    if(sender == self.button1){
        self.animationController = [[ZoomAnimationController alloc] init];
    }else{
        self.animationController = [[DropAnimationController alloc] init];
    }
    
    controller.transitioningDelegate  = self;
    [self presentViewController:controller animated:YES completion:nil];
}

问题
我试图了解将信息传递给新UIViewController 的正确位置。例如,假设我正在尝试将 UIImage 传递给新的(待)呈现的视图控制器。

通常我会在 prepareForSegue 方法中完成此操作,但由于这不是一个问题,因此传递数据的正确方法是什么。

我可以简单地添加以下示例:

controller.passingImage = self.imageToPass;

在 IOS7 中使用自定义转换时,这是否是正确的流程?

【问题讨论】:

  • 如果您希望能够在 ViewDidLoad: 中使用传递的变量,请在呈现之前传递它。否则,最好在完成块中传递它,以便 UI 更流畅。您传递的实际方式 controller.passingImage = self.imageToPass;看起来不错
  • @JackWu - 感谢您的确认

标签: ios uiviewcontroller ios7 segue uiviewanimationtransition


【解决方案1】:

当您在 iOS 7 中使用新的自定义动画转换时,您设置视图控制器的方式不会改变。因此,如果您使用情节提要,您仍然需要在 prepareForSegue 中设置视图控制器(包括设置 transitioningDelegate)。

有关使用情节提要的自定义动画过渡示例,请参阅以下示例代码。它是 WWDC Session 218: Custom Transitions Using View Controllers 示例代码的实现。查看 SOLViewController.m 以开始使用。

https://github.com/soleares/SOLPresentingFun

【讨论】:

  • 谢谢。当您创建从一个控制器到下一个控制器的 segue 时,它​​要求 Push/Model/custom 我最初选择了自定义并且我的转换没有运行。通过将其改回使用 presentViewController 而不是 perforSegueWith... 它按预期工作?
  • 你会想要使用推送或模态segue。如果您使用自定义 segue,那么您需要实现一个自定义 segue,这不是您想要的。 Modal相当于调用presentViewController:animated:,Push相当于调用pushViewController:animated。
  • 仅供参考,推送不起作用,它只是像往常一样进行推送,但模态确实做了我的自定义转换,不确定这是否正常?
  • 对于推送,您需要设置 self.navigationController.delegate 并实现返回动画控制器的 UINavigationControllerDelegate 方法。您可以在 SOLViewController.m 中的示例代码中看到这一点。如果您单击选项并切换“执行推送转换”,您可以在模式和推送之间切换。
  • @Maximilian 查看 2013 WWDC Session 218 的视频:使用视图控制器的自定义转换。该项目基于本次会议。
猜你喜欢
  • 2021-11-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-03-17
  • 1970-01-01
  • 2012-03-03
相关资源
最近更新 更多