2017-05-10 7 views
0

これは私のセグの方法です。このメソッドがParentViewControllerにあるとしましょう。スウィフト3でセグ時間の間、現在のView Controllerを解除する方法

override fu n c prepare(for segue: UIStoryboardSegue, sender: Any?) { 

    if segue.identifier == "subViewController" { 
     // Before appears in the screen. 
     let subViewController = segue.destination as! SubViewController 
     subViewController.currentMarks = sender as? Int16 
} 

これは完璧です。今SubViewControllerに来る。ここで私はいくつかのことをしている、私はここにボタンがあります。このボタンをクリックするたびにSubViewControllerが終了し、ParentViewControllerを開く必要があります(既に開かれている状態なので開かない)。

SubViewControllerのボタンをクリックすると、subViewControllerは自動的にParentViewControllerを表示しなくてはなりません。(既に開いているので、私は正しく閉じていないのですか?)

このメカニズムのように実装する方法は? SubViewControllerボタンのアクションでは、これを書いています:

self.navigationController?.dismiss(animated: true, completion: { 
    }) 

しかし、それは動作しませんでした。誰でも助けてくれますか?

+0

セグエはどんなことがあるの?モーダルかプッシュ? –

+0

performSegue(withIdentifier: "subViewController"、送信者:currentMarks)、その後 オーバーライドはFUNC(セグエのために:UIStoryboardSegue、送信者を?:任意)を作製{{ 場合segue.identifier == "subViewController" {表示される前に //画面に表示されます。 subViewController = segue.destinationを次のようにします。 SubViewController subViewController.currentMarks =送信者は? Int16 }} – Stack

+0

いいえ私はストーリーボードであなたのセグを選択し、どのようなものがモーダルかプッシュであるかをチェックしているわけではありませんか? –

答えて

3

stoyboardでsegueを作成したときにの表示を選択した場合。あなたのボタンのクリックでこれを呼び出します。

self.navigationController?.popViewController(animated: true) 

あなたはモーダルコールこの存在を選択した場合:

self.dismiss(animated: true, completion: nil) 
関連する問題