2017-01-03 73 views
1

在我的應用程序中,我必須從頂部到底部呈現屏幕,並且我已經嘗試了下面的代碼,它給出了相同的正常呈現樣式。Swift無法從上到下呈現視圖控制器

 let screen = self.storyboard?.instantiateViewController(withIdentifier: "Screen1p5") as? Screen1p5 
     let transition = CATransition() 
     transition.duration = 0.5 
     transition.type = kCATransitionPush 
     transition.subtype = kCATransitionFromTop 
     view.window!.layer.add(transition, forKey: kCATransition) 
     self.present(screen!, animated: true, completion: nil) 

回答

6

對於您需要設置的CATransitionsubtypekCATransitionFromBottom和連擊設置動畫animatedfalsepresent(_:animated:completion:)

let screen = self.storyboard?.instantiateViewController(withIdentifier: "Screen1p5") as? Screen1p5 
let transition = CATransition() 
transition.duration = 0.5 
transition.type = kCATransitionPush 
transition.subtype = kCATransitionFromBottom 
view.window!.layer.add(transition, forKey: kCATransition) 
self.present(screen!, animated: false, completion: nil) 

因解除設定的CATransitionsubtypekCATransitionFromTop

let transition = CATransition() 
transition.duration = 0.5 
transition.type = kCATransitionPush 
transition.subtype = kCATransitionFromTop 
view.window!.layer.add(transition, forKey: kCATransition) 
self.dismiss(animated: false) 
+0

感謝您的回答,我會盡力讓您知道。 –

+0

它工作的很好,但在解散視圖時應該從下到上的方向解散,而不是從上到下的方向,請您告訴我如何從下到上解除呈現的控制器。 –

+0

@MaheshNarla檢查編輯答案。 –

2

只是改變了它transition.subtypekCATransitionFromBottom

transition.subtype = kCATransitionFromBottom

對於駁回控制器。

let transition = CATransition() 
transition.duration = 0.5 
transition.type = kCATransitionPush 
transition.subtype = kCATransitionFromTop 
view.window!.layer.add(transition, forKey: kCATransition) 
self.dismiss(animated: true, completion: nil) 

請在下面找到GIF表象。

GIF

如果您正在使用的.xib那麼請找到下面的代碼。

對於目前的控制器。

let newController = NewViewController(nibName: "NewView", bundle: nil) 
let transition = CATransition() 
transition.duration = 0.5 
transition.type = kCATransitionPush 
transition.subtype = kCATransitionFromBottom 
view.window!.layer.add(transition, forKey: kCATransition) 
self.present(newController, animated: true, completion: nil) 

對於駁回控制器。它與上面的代碼相同。

let transition = CATransition() 
transition.duration = 0.5 
transition.type = kCATransitionPush 
transition.subtype = kCATransitionFromTop 
view.window!.layer.add(transition, forKey: kCATransition) 
self.dismiss(animated: true, completion: nil) 
+0

@Ramakrishna sharma這是工作得很好,而解散視圖應該從下到上的方向解散,而不是從上到下,請你告訴我如何從下到上解僱呈現的控制器。 –

+0

當然,我會給你的代碼。 –

+0

更新答案請查看。 –

相關問題