2017-12-26 8 views
0

Swift 4 X Code 9では、次のようにNibをロードして提示すると、どのようにそれを破棄しますか?これは、Nibがロードされる別のViewControllerでのコードの抜粋です。Swift 4 X Code 9では、次のようにNibをロードして提示すると、どのようにそれを破棄しますか?

@objc func doPresent(_ sender: Any?) { 
    if let svc = Bundle.main.loadNibNamed("SecondViewController", owner: self, options: nil)?.first as? SecondViewController { 
    svc.data = "This is very important data!" 
    svc.delegate = self 
    self.present(svc, animated:true) 
    } 
    } 

私が試み三つの

self.view.subviews[0].removeFromSuperview() 

self.view.removeFromSuperview() 

ならびに

self.dismiss(animated:true) 

なしに、所望の結果を有していません。最初のものはNibからボタンを削除し、2番目のボタンは暗い画面を表示し、3番目のボタンはナビゲーションビューの元のビューにNibが埋め込まれているビューを閉じます。 おかげ

+0

あなたはself.dismissを試しましたか? https://developer.apple.com/documentation/uikit/uiviewcontroller/1621505-dismiss –

+0

はい、しました。指摘してくれてありがとう。 – user2867432

+0

私は、表示されたView Controller(svc)から 'self.dismiss(animated:true)'を呼び出したのでしょうか? svcにはこのコードを呼び出す場所から閉じるボタンなどが必要です。 –

答えて

0

は、私はクラスレベルでVARとしてSVCを宣言し、私の​​ためにトリックをした

self.v.removeFromSuperview() 

を使用することができました。

関連する問題