performSegue 动画结束,啥标识符?
Posted
技术标签:
【中文标题】performSegue 动画结束,啥标识符?【英文标题】:performSegue on animation finished, what identifier?performSegue 动画结束,什么标识符? 【发布时间】:2016-10-19 09:55:47 【问题描述】:我想在动画完成时从加载的 viewController 到下一个 viewController 执行 segue:
override func viewDidAppear(animated: Bool)
super.viewDidAppear(animated)
UIView.animateWithDuration(1.5, delay: 0.5, options: UIViewAnimationOptions.CurveLinear, animations:
self.loggo_image.alpha = 1.0
self.performSegueWithIdentifier("LogInView", sender: nil)
, completion: nil)
我知道代码本身可能是错误的,但它只是显示示例。由于我没有任何按钮或类似的东西来创建故事板中下一个视图的转场(在故事板中按 CTRL),我想我需要以编程方式进行。虽然我不知道如何设置我想去的视图的“标识符”。如示例所示,我尝试简单地使用自定义类名,这是不对的。
那怎么办?是故事板ID吗?标题?
【问题讨论】:
参考developer.apple.com/library/content/featuredarticles/… 【参考方案1】:让我们来看看你的问题:
我想从加载的 viewController 到下一个执行 segue 动画完成时的 viewController
当动画完成意味着代码错误时(你说得对“我知道代码本身可能是错误的”),你应该在completion
块中执行你的segue ,如下:
UIView.animateWithDuration(1.5, delay: 0.5, options: UIViewAnimationOptions.CurveLinear, animations:
self.loggo_image.alpha = 1.0
, completion: _ in
self.performSegueWithIdentifier("LogInView", sender: nil)
)
虽然我不知道如何设置我想要的视图的“标识符” 要去。如示例所示,我尝试简单地使用自定义 类名,这是不对的。
那怎么办?是故事板ID吗?标题?
我在this answer 中详细描述了如何实现这一点。
另外:
如果你有一个案例,你应该导航到另一个 viewController 而不使用 segue,你检查这个(在这种情况下你必须使用 Storyboard ID):
let storyBoard : UIStoryboard = UIStoryboard(name: "Main", bundle:nil)
// "nextView" is Storyboard ID
let nextViewController = storyBoard.instantiateViewControllerWithIdentifier("nextView") as NextViewController
// now you can choose between pushing:
self.navigationController?.pushViewController(nextViewController, animated: true)
// or presenting:
self.presentViewController(nextViewController, animated:true, completion:nil)
希望有所帮助。
【讨论】:
很高兴为您提供帮助 :)【参考方案2】:您可以从 ViewController 本身(屏幕截图上的黄色圆圈)按住 Ctr-Drag 到您想要继续的视图控制器。
它将创建一个 segue,您可以在那里设置它的标识符,然后像您一样调用performSegue
,使用您在情节提要中设置的标识符。
【讨论】:
以上是关于performSegue 动画结束,啥标识符?的主要内容,如果未能解决你的问题,请参考以下文章