我正在尝试在xcode故事板中使用自定义segue让视图向下滑动(与封面垂直相反)。
我了解到我需要打电话:
[self dismissViewControllerAnimated:YES completion:nil];
但我在哪里以及如何做到这一点?这应该在.h文件中吗?然后这会创建一个转换,然后我可以在选择转换时从下拉菜单中选择吗?
我是新手,所以我认为我需要一步一步的指导。提前谢谢!
答案 0 :(得分: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
答案 1 :(得分:2)
您不需要自定义segue - 当您希望屏幕关闭时(假设您按下按钮时),只需在您想要关闭的视图控制器中实现此功能。
-(IBAction)closeScreen:(id)sender{
[self dismissViewControllerAnimated:YES completion:NULL];
}
您将在.m文件中调用它。
答案 2 :(得分:0)
您不需要自定义segue仅用于覆盖垂直过渡。
如果你在storyboard中设置一个模态转换就足够了(在你的按钮和目标viewcontroller之间使用ctrl + drag)。然后单击segue线并在检查器(右上角)中更改从默认到覆盖垂直的过渡。
@你的目标视图控制器你从想要关闭视图的按钮创建一个ibaction(通过ctrl +从你的按钮拖动到.m文件)。然后你将消除线添加到这个ibaction。
答案 3 :(得分:0)
称为unwind segue
的东西是完美的。想象一下FooViewController呈现BarViewController。你在故事板中都有。在FooViewController.h
中定义方法- (IBAction)onCloseBarController:(UIStoryboardSegue *)segue;
并在FooViewController.m
中添加一个空实现
- (IBAction)onCloseBarController:(UIStoryboardSegue *)segue
{
}
现在,转到故事板并在BarViewController
视图中找到要用于触发关闭操作的控件。单击该控件,在右侧检查器中转到触发段(最右侧选项)并从action
(在UIBarButtonItem
}或Sent Events
的情况下拖动(在这种情况下) UIButton
}对于故事板中BarViewController
底部的退出控件。然后它应该显示所有可用的展开段,只需选择onCloseBarController
。
Unwind segues是专门为此而制作的。最好的部分 - 您不必手动关闭控制器,unwind segue会自动执行此操作。因此,您只需使用方法onCloseBarController
作为解雇的通知方法。
关于展开segues的非常好的教程:http://pragmaticstudio.com/blog/2013/2/5/unwind-segues