0

I am trying to use a custom segue in xcode storyboard to have a view slide back down (the reverse of cover vertical).

I have learned that i need to call:

[self dismissViewControllerAnimated:YES completion:nil];

But where and how do i do this? Should this be in the .h file? And will this then create a transition i can then choose from the drop down menu when selecting a transition?

I am new to this so think i need a step by step guide. Thanks in advance!

4

4 回答 4

2

您不需要为此自定义 segue - 当您希望屏幕关闭时(假设您按下按钮时)只需在您想要关闭的视图控制器中实现它。

-(IBAction)closeScreen:(id)sender{
    [self dismissViewControllerAnimated:YES completion:NULL];
}

您将在 .m 文件中调用它。

于 2013-11-19T18:06:28.827 回答
2

假设有一个后退按钮,您想在该按钮上转到上一个视图控制器。在按钮操作方法中,您必须编写如下代码行

-(IBAction)Back{
[self dismissViewControllerAnimated:NO completion:nil];
}

对于动画,在要设置动画的类中编写此方法

- (void)fadeIn
{
     self.view.transform = CGAffineTransformMakeScale(1.3, 1.3);
     self.view.alpha = 0;
    [UIView animateWithDuration:.35 animations:^{
    self.view.alpha = 1.0;
    self.view.transform = CGAffineTransformMakeScale(1, 1);
}];

}

从该类的 ViewWillAppear 方法中调用此方法:

-(void)viewWillAppear:(BOOL)animated{

[self fadeIn];
}

对于检查这个的高级动画:https ://github.com/JosephLin/TransitionTest

于 2013-09-09T11:41:25.800 回答
0

您不需要自定义 segue 仅用于封面垂直过渡。

如果您在情节提要中设置模态转换(在按钮和目标视图控制器之间使用 ctrl+拖动)就足够了。然后单击 segue 线并将过渡从默认更改为在检查器中覆盖垂直(右上角)。

@您的目标视图控制器,您从要关闭视图的按钮创建一个 ibaction(通过 ctrl+从您的按钮拖动到 .m 文件)。然后你将解雇线添加到这个 ibaction。

于 2013-09-09T11:39:51.240 回答
0

所谓的东西unwind segue是完美的。想象一下 FooViewController 呈现 BarViewController。你在故事板中都有。在FooViewController.h定义一个方法- (IBAction)onCloseBarController:(UIStoryboardSegue *)segue;FooViewController.m只放入一个空的实现中

- (IBAction)onCloseBarController:(UIStoryboardSegue *)segue
{
}

现在,转到您的 Storyboard 并在BarViewController视图中找到您要用于触发关闭操作的控件。单击该控件,在右侧检查器中转到 Triggering Segues(最右侧的选项)并从action(在 的情况下UIBarButtonItem)或Sent Events(在 的情况下UIButton)拖动到故事板底部的ExitBarViewController控件。然后它应该向您显示所有可用的 unwind segues,只需选择onCloseBarController.

Unwind segues 是专门为此制作的。最好的部分 - 您不必手动关闭控制器,展开 segue 会自动完成。因此,您可以将该方法onCloseBarController用作解雇的通知方法。

关于放松转场的相当好的教程: http ://pragmaticstudio.com/blog/2013/2/5/unwind-segues

于 2013-09-09T11:51:08.977 回答