>

두 개의 UITableView 가있는 프로젝트를 진행 중입니다 s와 두 개의 UITextField s, 사용자가 버튼을 누르면 첫 번째 textField 의 데이터   tableView 에 가야  두 번째는 두 번째 tableView 로갑니다. . 내 문제는 tableView 에 데이터를 넣는 방법을 모른다는 것입니다.  사용자가 버튼을 누를 때마다 tableView:cellForRowAtIndexPath: 로 데이터를 삽입하는 방법을 알고 있습니다  그러나 그것은 내가 아는 한 한 번 작동합니다. 그래서 tableView 를 업데이트하는 데 사용할 수있는 방법  사용자가 버튼을 누를 때마다?


  • 답변 # 1

    beginUpdates 사용  그리고 endUpdates  버튼을 클릭하면 새 셀을 삽입합니다.

    테이블 뷰 배열의 모든 추가 데이터

    Yourarray.append([labeltext]) 
    
    

    그런 다음 테이블을 업데이트하고 새 행을 삽입하십시오

    // Update Table Data
    tblname.beginUpdates()
    tblname.insertRowsAtIndexPaths([
    NSIndexPath(forRow: Yourarray.count-1, inSection: 0)], withRowAnimation: .Automatic)
    tblname.endUpdates()
    
    

    이것은 셀을 삽입하고 전체 테이블을 다시로드 할 필요는 없지만이 문제가 발생하면 tableview.reloadData() 를 사용할 수도 있습니다

    <시간>

    Swift 3.0

    tableView.beginUpdates()
    tableView.insertRows(at: [IndexPath(row: yourArray.count-1, section: 0)], with: .automatic)
    tableView.endUpdates()
    
    
    <시간>

    목표 -C

    [self.tblname beginUpdates];
    NSArray *arr = [NSArray arrayWithObject:[NSIndexPath indexPathForRow:Yourarray.count-1 inSection:0]];
    [self.tblname insertRowsAtIndexPaths:arr withRowAnimation:UITableViewRowAnimationAutomatic];
    [self.tblname endUpdates];
    
    

  • 답변 # 2

    두 tableView에 데이터를 추가하는 코드는 다음과 같습니다.

    import UIKit
    class ViewController: UIViewController, UITableViewDelegate, UITableViewDataSource {
        @IBOutlet weak var table1Text: UITextField!
        @IBOutlet weak var table2Text: UITextField!
        @IBOutlet weak var table1: UITableView!
        @IBOutlet weak var table2: UITableView!
        var table1Data = ["a"]
        var table2Data = ["1"]
        override func viewDidLoad() {
            super.viewDidLoad()
        }
        @IBAction func addData(sender: AnyObject) {
            //add your data into tables array from textField
            table1Data.append(table1Text.text)
            table2Data.append(table2Text.text)
            dispatch_async(dispatch_get_main_queue(), { () -> Void in
                //reload your tableView
                self.table1.reloadData()
                self.table2.reloadData()
            })
    
            table1Text.resignFirstResponder()
            table2Text.resignFirstResponder()
        }
        //delegate methods
        func numberOfSectionsInTableView(tableView: UITableView) -> Int {
            return 1
        }
        func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
            if tableView == table1 {
                return table1Data.count
            }else if tableView == table2 {
                return table2Data.count
            }
            return Int()
        }
        func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
            if tableView == table1 {
                let cell = table1.dequeueReusableCellWithIdentifier("Cell", forIndexPath: indexPath) as! UITableViewCell
                let row = indexPath.row
                cell.textLabel?.text = table1Data[row]
                return cell
            }else if tableView == table2 {
                let cell = table2.dequeueReusableCellWithIdentifier("Cell1", forIndexPath: indexPath) as! UITableViewCell
                let row = indexPath.row
                cell.textLabel?.text = table2Data[row]
                return cell
            }
            return UITableViewCell()
        }
    }
    
    

    결과는 다음과 같습니다.

  • 답변 # 3

    Swift 3.0업데이트 된 솔루션

    하단에 삽입

    self.yourArray.append(msg)
    self.tblView.beginUpdates()
    self.tblView.insertRows(at: [IndexPath.init(row: self.yourArray.count-1, section: 0)], with: .automatic)
    self.tblView.endUpdates()
    
    

    TableView 상단에 삽입

    self.yourArray.insert(msg, at: 0)
    self.tblView.beginUpdates()
    self.tblView.insertRows(at: [IndexPath.init(row: 0, section: 0)], with: .automatic)
    self.tblView.endUpdates()
    
    

  • 이전 jquery - 자바 스크립트를 사용하여 링크를 만들려면 어떻게합니까?
  • 다음 r - 함수의 출력으로 경고 및 오류를 어떻게 저장합니까?