私はヘッダにタイトルを追加したいと思います。これらのタイトルはviewDidLoad
で開始された配列から取得されます。これにはoverride func titleForHeaderInSection
を使用しました。私のコードを実行すると、関数があまりにも早く呼び出されたように思えます。iOSのviewDidLoadの前に `titleForHeaderInSection`が呼び出されたようです
私は関数にブレークポイントを追加し、コードを3回ループした後、私はtableviewcontroller
を見ることができます。
また、2つの印刷コマンドを追加しました。 viewDidLoad
に1つ、titleForHeaderInSection
に1つ。まず、titleForHeaderInSection
プリントが最初に印刷されます。
viewDidLoad
の後にこの関数を呼び出すべきではありませんか?そして私の問題はどのように修正できますか?
これは次のようなコードが見えるものである:配列は[A、B、C、D]だけの簡単で、今最初のセクションのタイトルは「A」とのタイトルである
override func tableView(tableView: UITableView, titleForHeaderInSection section: Int) -> String? {
print("title")
for index in tasks.indices{
print(index)
if section == index{
print(tasks[index])
return tasks[index]
}
return "no name specified"
}
return ""
}
他の3 'が指定されていません名' ではない
私のviewDidLoadメソッドは次のようになります...
var taskName = [""]
var dateStamp = [""]
var userId = [""]
var clType = [""]
var tasks = [""]
var count = 0
var countarr = [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]
var result = false
var dupClType = [""]
var loaded = false
override func viewDidLoad() {
super.viewDidLoad()
let query = PFQuery(className:"pendingTasks")
query.orderByAscending("clType")
query.findObjectsInBackgroundWithBlock({ (object: [PFObject]?, error: NSError?) in
if error != nil{
print ("error")
} else {
if let objects = object{
self.taskName.removeAll(keepCapacity: true)
self.dateStamp.removeAll(keepCapacity: true)
self.userId.removeAll(keepCapacity: true)
self.clType.removeAll(keepCapacity: true)
for object in objects{
if object.objectId != "Q8knzhSDon"{
self.taskName.append(object.objectForKey("taskName") as! String)
self.dateStamp.append(object.objectForKey("dateStamp") as! String)
self.userId.append(object.objectId! as String)
self.clType.append(object.objectForKey("clType") as! String)
}
}
}
self.tasks = Array(Set(self.clType))
self.tasks.sortInPlace()
self.loaded = true
for items in self.tasks.indices{
self.count=0
for item in self.clType{
if item == self.tasks[items]{
self.count = self.count + 1
self.countarr[items] = self.count
}
}
}
while self.countarr.last == 0{
self.countarr.removeLast()
}
self.dupClType = self.clType
}
self.tableView.reloadData()
})
// Uncomment the following line to preserve selection between presentations
// self.clearsSelectionOnViewWillAppear = false
// Uncomment the following line to display an Edit button in the navigation bar for this view controller.
self.navigationItem.rightBarButtonItem = self.editButtonItem()
}
VCのビューがdelegate/datasourceの設定などに追加される前にtableViewに何かしている場合、ビューの前にtableViewsのものが呼び出されます – SeanLintern88
ありがとうございます。その前に私が何もしていないことを確認するにはどうすればいいですか?私の他のオーバーライド関数も 'viewDidLoad'の配列に基づいており、うまく動作します。 –
viewDidLoadでtableview設定を行いますか?すべてのコードを見ることができません。 – SeanLintern88