2016-12-15 10 views
0

私は、前のビューでどのボタンが押されたかによって画像が変わってしまい、レイアウトが変わってしまいました。私がやろうとしていたことは、btn1がユーザを押して次のビューに移動した後にVCfile1.swiftが使用され、ユーザがbtn2を押すと次のビューに移動しVCFile2.swiftが使用されるストーリーボードで作成された同じビューコントローラー用です。どうすればこれを達成できますか? (私はこれが正しい方法ですが、アドバイスをしてくださいませんかはわからない)同じViewControllerに異なる高速ファイルを使用しますか?

スウィフト3、Xcodeの8

+0

はストーリーボードで作成されたのViewControllerをコピーします。クラスを 'VCfile1'に、もう一つを' VCfile2'に設定してください。どのボタンが押されたかに応じて希望のものに切り替えます。または:ストーリーボードのXIB(ビュー)instadを作成し、両方のVCにこのxibをプログラム的にロードします。 – shallowThought

+0

複数のViewControllerを作成できないため、100個のViewControllerのようになります。@shallowThought – Henry

+0

あなたのためのオプション2は、(XIB ...)です。 – shallowThought

答えて

1

は、まず:あなたは100 UViewController秒が必要な場合は、すべて同じビューで、あなたが何かをやって違う。

別のViewController(.swift)クラスで同じViewを再利用するには、UIViewXIBとして作成し、プログラムでViewControllerで(再)使用します。

  • ビューのためのクラスを作成します。

    クラスMYVIEWを:UIViewの{ // }

  • XIBファイルを作成します(新しい - >ファイル - >表示)MyView.xibを、そのセットクラスをMyViewに変更し、必要に応じてカスタマイズしてください。

  • は、インスタンスを作成し、UIViewControllersでそれを使用します。

    class MyViewController: UIViewController { 
        var myView: MyView? 
    
        override func viewDidLoad() { 
         super.viewDidLoad() 
         myView = UINib(nibName: "MyView", bundle: nil).instantiate(withOwner: self, options: nil).first as? MyView 
         view.addSubview(myView!) 
         // You might want to set constraints here 
        } 
    } 
    
+0

私はXibファイルを作成し、それに1つのクラスを接続させました。私は他のクラスとの接続に問題があります。 「AdSpaceShared: - > { リターンUINib(nibNameのUIViewController { VARビュー= TestAd1.instanceFromNib self.view.addSubview(ビュー()) クラスFUNCのinstanceFromNib():私は、他のクラスと使用 'クラスTestAd1を添加しました。 xib "、bundle:nil)。インスタンス(withOwner:nil、options:nil)[0] as! UIView } ' – Henry

+0

答えを更新しました。うまくいけば、アイデアを得るのに役立ちます。 – shallowThought

関連する問題