2017-01-24 5 views
0
class NewCourseViewController: UIViewController { 

    @IBOutlet weak var courseNameTextField: UITextField! 


    override func viewDidLoad() { 
     super.viewDidLoad() 
    } 

override func prepare(for segue: UIStoryboardSegue, sender: Any?) { 
    // Get the new view controller using  segue.destinationViewController. 
    // Pass the selected object to the new view controller. 

     if segue.identifier == "newClassComplete" { 

if let vcSendingToo = segue.destination as?    CoursesTableViewController { 

// Pass courseName to nameOfCourses Array 

    // Course Name 
    let courseName = courseNameTextField.text! 
    vcSendingToo.nameOfCourse = courseName 
    vcSendingToo.nameOfCourses.append(vcSendingToo.nameOfCourse) 


} 


class CoursesTableViewController: UITableViewController { 

var nameOfCourses = [String]() 
var nameOfCourse = "" 



} 

同じ配列に値を追加するのではなく、空の配列に再起動します。オンラインで問題の解決に役立つサンプルを見つけることができません。その後、停止したフィンを働いていたSUマイアレイが再起動して追加されない

+0

'var nameOfCourses = [String]()' => 'var nameOfCourses = [String]'?私はSwiftを話しませんが、あなたのバージョンは新しい配列を作成しませんか?あるいは 'vcSendingToo.nameOfCourses'が存在し、そこに' nil'が存在しないかどうかをチェックしてください。その場合、 'append()'できないはずですから。 – Larme

+2

誰かがあなたのコードを読んで、あなたを助ける方法を理解することは誰にも期待できません。あなたが達成しようとしていることをまず説明してください。投稿するコードは、あなたが説明した問題を解決しようとするべきです。 –

+0

あなたは即座に '[String]()'で新しい配列を作成します – muescha

答えて

0

この行これに

let courseName = courseNameTextField.text! 
vcSendingToo.nameOfCourse = courseName 
vcSendingToo.nameOfCourses.append(vcSendingToo.nameOfCourse) 

を変更しようとしたことがあり、すべての?

let courseName = courseNameTextField.text ?? "" //validate for nil 
vcSendingToo.nameOfCourse = courseName 
vcSendingToo.nameOfCourses = [courseName] 
-3

グローバル変数を作成し、「vcSendingToo」プロパティを削除しました。

+0

非常に非常に悪いデザインです。オブジェクト指向以外のものになります。 'nameOfCourses'は' CoursesTableViewController'のプロパティであり、同じ方法で処理されるべきです。 – Honey

関連する問題