自定义IOS7转换将数据传递给呈现View Controller

时间:2014-01-13 23:01:31

标签: ios uiviewcontroller ios7 segue uiviewanimationtransition

我正在考虑实现一些自定义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方法中完成此操作,但由于这不是一个segue,传递数据的正确方法是什么。

我可以简单地添加以下内容:

controller.passingImage = self.imageToPass;

在IOS7中使用自定义转换时,这是正确的处理过程吗?

1 个答案:

答案 0 :(得分:1)

在iOS 7中使用新的自定义动画过渡时,设置视图控制器的方式不会改变。因此,如果您使用的是故事板,您仍然可以在prepareForSegue中设置视图控制器(包括设置transitioningDelegate)。 p>

有关使用情节提要的自定义动画过渡的示例,请参阅以下示例代码。它是WWDC会话218的示例代码的实现:使用视图控制器的自定义转换。看看SOLViewController.m开始吧。

https://github.com/soleares/SOLPresentingFun