2016-04-19 4 views
0

配列に新しい要素を追加したい。私はコンテナビューを使用しています。私はtableviewcontrollerにaddItem関数を呼び出します。しかし、私は何も起こらないボタンをクリックした。別のコントローラから配列を追加する

マイTableViewController

import UIKit 

class TableViewController: UITableViewController { 

    var myArray = ["1"] 

    override func viewDidLoad() { 
     super.viewDidLoad() 

    } 

    override func didReceiveMemoryWarning() { 
     super.didReceiveMemoryWarning() 
     // Dispose of any resources that can be recreated. 
    } 

    func addItem() { 
     myArray.append("asd") 
     tableView.reloadData() 
    } 

    // MARK: - Table view data source 

    override func numberOfSectionsInTableView(tableView: UITableView) -> Int { 
     // #warning Incomplete implementation, return the number of sections 
     return 1 
    } 

    override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int { 
     // #warning Incomplete implementation, return the number of rows 
     return myArray.count 
    } 


    override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { 
     let cell = tableView.dequeueReusableCellWithIdentifier("myCell", forIndexPath: indexPath) 

     // Configure the cell... 
     cell.textLabel?.text = myArray[indexPath.row] 

     return cell 
    } 

} 

マイTableViewController

import UIKit 

class ViewController: UIViewController { 

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

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

    @IBAction func addButton(sender: AnyObject) { 
     TableViewController().addItem() 
    } 

} 
+0

あなたが呼び出すたびに 'TableViewController()'それは新しい配列に新しい 'TableViewController'を作成することを理解していますか?私はあなたがすでに持っているものを使う必要があると推測しています。 –

+0

あるView Controllerから別のView Controllerにデータを渡すだけですか? –

+0

はい..しかし、私は失敗しました。 –

答えて

0

ラインTableViewController()。のaddItem()TableViewControllerのブランドの新しいインスタンスを作成し、それにのaddItem()を呼び出すことを意味します。あなたは操作したいTableViewControllerの特定のインスタンスへの参照を見つける必要があります。そのViewControllerはaddItemを呼び出すものにどのように関係していますか?

0

それはこのようなものでなければなりません:

class ViewController: UIViewController { 
    let tableViewController = TableViewController() 
    .. 

    @IBAction func addButton(sender: AnyObject) { 
     tableViewController.addItem() 
    } 
} 
+0

私はしようとしましたが、何も起こりません...私はエラーは発生しませんが、何も起こりません。 –

関連する問題