2016-12-16 5 views
0

私は、テキストフィールド値を1つのviewcontrollerに渡して別のビューコントローラに渡したいと思っています。私が試したパス変数中のエラー1つのviewControllerを別のコントローラにプログラム的に

フリスト:

var testval = "est val here lalla" 
let viewController = BookingConfirmationController(nibName: "BConController", bundle: nil) 
       viewController.testval = "test test" 
       self.presentViewController(viewController, animated: true, completion: nil) 

を、私はこのコードを実行する際にビットのViewControllerが表示されていない期待どおり、私は変数を渡すことができ、私はノー成功を収めて、次のコードを試してみました。代わりに私は黒い画面を持っています。私はこのnibNameが古い使用であり、これ以上使用していないことを発見しました。私はstoryboradを通してviewContorllersを作成しました。

は、それから私は、コードの下に試してみました:

var storyboard: UIStoryboard = UIStoryboard (name: "Main", bundle: nil) 


      var testval = " test" 

       var vc: UIViewController = storyboard.instantiateViewControllerWithIdentifier("BConControllerID") as UIViewController 

       vc.testval = testval 

       self.presentViewController(vc ,animated: true, completion: nil) 

私はのUIViewControllerは変数がないとメンバーの名前祭り "

を持っていない

としてここでエラーを抱えています次のviewControllerを正常に開くことができます。

私はまだSWIFTを学んだし、誰も私は、次のビューコントローラを開き、あなたがのUIViewControllerのサブクラスを持つ必要がありますカスタムパラメータを持つために、変数

答えて

1

を渡すのを助けることができます。別のクラスからアクセスするには、そのUIViewControllerのインスタンスを作成したサブクラスにキャストする必要があります。このライン

var vc: UIViewController = storyboard.instantiateViewControllerWithIdentifier("BConControllerID") as UIViewController 

であなたは

myViewControllerは、あなたはそれがプロパティのアクセスするために持っているカスタムサブクラスである
var vc: myViewController = storyboard.instantiateViewControllerWithIdentifier("BConControllerID") as myViewController 

のようなものとしてそれを持っている必要があります。

はまた、サイドノートとして、あなたが作成している、それはすべてのUIViewControllerでinstantiateViewControllerWithIdentifierはのUIViewController

+0

を返しますよう、明示的にキャストする必要はありません。私はこのようにしようとしたします。var VC:のUIViewController = storyboard.instantiateViewControllerWithIdentifier( "BookingConfirmationControllerID")をBConControllerとして返します。しかし、私はまだ同じエラーが発生します。そして、私はあなたの側を明確にしませんでした。もう少し説明してください。 –

+0

多分あなたは[documentation](http://stackoverflow.com/documentation/swift/topics)のいくつかの基本的なことを読んで、あなたがしたことは、UIViewControllerとしてvcを宣言してBConControllerを格納することです。問題はありませんBConControllerはUIViewControllerのサブクラスですが、コンパイラはvcがBCViewerControllerではなくUIViewControllerであるため、格納されていてもBConControllerのプロパティにアクセスすることはできません。 'var vc:BConController'のようにvcを宣言して、そのプロパティにアクセスしてください。 –

+0

申し訳ありません私の間違い。それは働いている。ご協力ありがとうございました。 –

関連する問題