2016-06-23 11 views
0

私が作業を始める前に、私の人生でSwiftとXCodeの使い方を詳しく説明しておかなければなりません。私は約1週間前にそれを始めました(そして、どれくらい私が得たかに正直に感銘を受けました)。私は何をしているのか分かりませんが、私は喜んで学びます。テキストフィールドとラベルの編集エラー

今、私の質問に。

ラベルを別のビューコントローラから変更するために、あるビューコントローラからテキストフィールドを取得しようとしています。私はそれを正しかったと思ったが、構文エラーなどを私に投げかけた。それを修正した後、私はコードを実行し、SIGABRTエラーを取得します。ここに私のコードです。

はここBasicViewController下のラベル、だ

class BasicViewController: UIViewController { 

    @IBOutlet weak var NameField: UILabel! 

    var NameText = String() 

    override func viewDidLoad() { 
     super.viewDidLoad() 

     NameField.text = NameText 
} 

を(これはBasicViewControllerでだことすべてではない、私はちょうど私が適切だと思ったものを切り出す)そして、ここEditCharControllerの下に、テキストフィールドです。これがSIGABRTエラーの発生場所です。 (コードの欠如とも、同じこと。)

class EditCharController: UIViewController, UIPickerViewDelegate, UIPickerViewDataSource { 

    @IBOutlet weak var NameTextField: UITextField! 

    override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) { 
     var NameTextDest : BasicViewController = segue.destinationViewController as! BasicViewController //Specifically, this is the line that it happens at. 

     NameTextDest.NameText = String(NameTextField.text) 

} 
} 

は現在、XCodeのは、letのラベルにVaRのラベルを変更するために私に言っているが、私はそれを行う場合でも、それはこのエラーを吐きます。

Could not cast value of type 'UITabBarController'(?!?) (0x10310c8b0) to 'Project.BasicViewController' (0x1019a0060). 

最後に、コード内のどこにでもUITabBarControllerを参照していないことを確認しました。なぜ私はこのメッセージを受け取っていますか?

また、詳細なチュートリアルに関するご意見をいただければ幸いです。

+0

を試してみては 'UITabBarController'のご' BasicViewController'の一部ですか? – Code

+0

segueが 'BasicViewController'に移動していることを確認してください。これは、セグが 'UITabBarController'に行くことを伝えています。 – Connor

+0

@ Code BasicViewController.swiftのどこにでも 'UITabBarController'が表示されません。私はストーリーボードのTab Bar Controllerを持っていて、BasicViewControllerに行きます。そうしないと、EditCharControllerを終了してからタブを表示できなくなります。 TabBarController> BasicViewController> EditCharController> TabBarController ... TabBarControllerはBasicViewControllerに自動的にルーティングされますが、EditBarControllerへのEditCharControllerまたはEditCharControllerからBasicViewControllerに到達するには、無限ループを避けるためにユーザー入力が必要です。それは私の問題ですか? –

答えて

0

let index = 0 // change this to the tab index of the BasicViewController. 
let NameTextDest : BasicViewController = (segue.destinationViewController as! UITabBarController).viewControllers[index] as! BasicViewController 

NameTextDest.NameText = NameTextField.text! 
+0

まあ、それはほとんど働いた。それはアプリの死んだ寒さを停止しませんでしたが、ラベルは "オプション(" [入力が何であれ] ")"と表示されます。 –

+0

@JakeMcGee私の編集を参照してください。 – Code

+0

完璧、ありがとう! –

関連する問題