2017-03-07 1 views
0

私はswift 3で実行されているプロジェクトに取り組んでおり、メソッドperformSegueWithIdentifierを使用して2つのView Controller間でセグを呼び出します。希望のUIViewControllerに向かいますが、画面は下から上にのみスライドします(デフォルト)。私の要件は、このセグが呼び出された後、画面が右から左にスライドすることを確認することです。以下のコードは次のとおりです。2つのUIViewControllersの間でセグが呼び出されたときに画面が右から左にスライドする必要があります

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { 
    if tableView == self.categoryTableView { 
     performSegue(withIdentifier: "showBrowsVC", sender: nil) 
    } 
} 
+0

カスタムプレゼンテーションを作成できます。 [Appleガイド] [1] [1]:https://developer.apple.com/library/content/featuredarticles/ViewControllerPGforiPhoneOS/DefiningCustomPresentations.html#//apple_ref/doc/uid/TP40007457-CH25- SW1 –

答えて

1

performSeguewithIdentifier現在のviewControllerをこのようなアニメーションで代わりに使用します。あなたはあなたがまた、このような何かを達成するためCustom Transitionsを使用することができます値

class secViewController: UIViewController { 
    var category:Bool? 
} 
+0

すみません、すごく早いですから、2番目のviewcontrollerに "secViewController"というストーリーボードIDを渡すことになっています。それは何を示唆しているのでしょうか? – danutha

+1

はい。 2番目のView ControllerにストーリーボードIDを与え、そのストーリーボードIDを使用する必要があります。 –

+0

非常に小さな質問です。どのように私はセグーメソッドの準備でこのIDを呼び出すのですか? – danutha

0
  1. あなたのViewControllerがNavigationControllerに埋め込まれていることを確認してください。
  2. ストーリーボードのセグの[現在の代わりに表示]を選択したことを確認してください。
+0

セグは2つのViewContollersの間にありますが、NavigationControllerには埋め込まれていません。したがって、最初のビューコントローラーから行が選択されると、それは2番目のビューコントローラーにナビゲートされます。 – danutha

+0

最初のViewControllerをNavigationControllerに埋め込む必要があります。 – chengsam

+0

これ以外の方法はありませんか? – danutha

1

を渡したい変数を持つべきであるsecViewController.swiftで

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { 
if tableView == self.categoryTableView { 
let transition = CATransition() 
transition.duration = 0.5 
transition.type = kCATransitionPush 
transition.subtype = kCATransitionFromRight 
view.window!.layer.add(transition, forKey: kCATransition) 
let secVC = self.storyboard?.instantiateViewController(withIdentifier: "secViewController") as! secViewController 
secVC.category = home 
present(secVC!, animated: false, completion: nil) 
} 
} 

ビューコントローラでカスタムトランジションを実装する方法については、https://github.com/pgpt10/Custom-Animatorを参照してください。

関連する問題