insertRowsAtIndexPaths
は、暗黙的にテーブルビューを再配置するので
import UIKit
class ViewController: UIViewController , UITableViewDelegate, UITableViewDataSource,transferDelegate , UIViewControllerTransitioningDelegate{
var xibName : String = "HomepageFeedCellHeader"
var lords : [String] = ["name1","name2","name3"]
var queens : [String] = ["--","q1","q2"]
var desc : [String] = ["alpha","beta","gamma"]
var menProfilePictures : [UIImage] = [UIImage(named: "DaarioNaharis")!,UIImage(named: "JaimeLannister")!,UIImage(named: "LordVarys")!]
@IBOutlet weak var postButton: UIButton!
@IBOutlet weak var parentTableView: UITableView!
@IBOutlet weak var pickImages: UIButton!
var a : ParentTableViewCell = ParentTableViewCell()
@IBOutlet weak var postTextView: UITextView!
override func viewDidLoad() {
super.viewDidLoad()
parentTableView.delegate = self
parentTableView.dataSource = self
}
func numberOfSectionsInTableView(tableView: UITableView) -> Int {
return 1
}
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return desc.count
}
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = parentTableView.dequeueReusableCellWithIdentifier("ParentCell", forIndexPath: indexPath) as! ParentTableViewCell
cell.transferingDelegate = self
cell.feedPostUsername.text = lords[indexPath.row]
cell.feedPostUserDetails.text = queens[indexPath.row]
cell.feedPostDescription.text = desc[indexPath.row]
cell.feedUserProfilePictures.image = menProfilePictures[indexPath.row]
cell.selectionStyle = .None
return cell
}
func transfer(itemNo : Int) {
print("call recieved in viewController from item \(itemNo)")
let imagePopOverScene = self.navigationController?.storyboard?.instantiateViewControllerWithIdentifier("ImagePopOverViewControllerVC_ID") as? ImagePopOverViewController
print("itemNo in viewControlle \(itemNo)")
if itemNo < 3{
imagePopOverScene?.setImage = menProfilePictures[itemNo]
}else{
imagePopOverScene?.setImage = UIImage(named: "defaultProfilePic")
}
imagePopOverScene?.transitioningDelegate = self
self.navigationController?.pushViewController(imagePopOverScene!, animated: true)
}
@IBAction func postBtnAction(sender: UIButton) {
print("post btn action recieved")
tableViewConfiguration()
}
func tableViewConfiguration(){
parentTableView.beginUpdates()
desc.append(postTextView.text!)
menProfilePictures.append(UIImage(named: "defaultProfilePic")!)
queens.append("--")
lords.append("Anonymous")
let indexPath : [NSIndexPath] = [NSIndexPath(forRow: 0, inSection: 0)]
print(indexPath)
parentTableView.insertRowsAtIndexPaths(indexPath, withRowAnimation: .Fade)
tableView(parentTableView, cellForRowAtIndexPath: indexPath[0])
parentTableView.endUpdates()
parentTableView.reloadData()
parentTableView.scrollToRowAtIndexPath(indexPath[0], atScrollPosition: UITableViewScrollPosition.Top, animated: true)
}
@IBAction func pickImagesAction(sender: UIButton) {
}
}
とはねえ、本当にそれを取得できませんでした!...また、あなたは私が私の基本をクリアするためのマニュアルを参照してくださいすることができます! – Dravidian
モデル(データソース配列)とビュー(テーブルビュー)を同期させておく必要があります。つまり、データソース配列内の新しい項目を、テーブルビューに表示するのと同じインデックスに正確に挿入する必要があります。 'reloadData()'行を省略すると、完了です。 – vadian
あなたは私が知らないことを、コードでどうやってやりますか?...初心者です.. – Dravidian