2016-04-08 11 views
0

otherUserUidとotherUserFullNameを別のView Controllerにプッシュしていますが、すぐには呼び出されません。情報が遅れており、情報が表示されるまでに2回のクリックが必要です。セグ遅延を準備する。情報が遅延していますが、表示されています

私はprepareForSegue:がdidSelectRowAtIndexPathの前に呼び出されていると思います:これを解決する方法は?

乾杯!

オーバーライドのfuncのtableView(のtableView:のUITableView、didSelectRowAtIndexPath indexPath:NSIndexPath)didSelectRowAtIndexPathで{

self.performSegueWithIdentifier("jsqDirectory", sender: self) 
    let indexPath = tableView.indexPathForSelectedRow! 

    let currentCell = tableView.cellForRowAtIndexPath(indexPath)! as UITableViewCell 

    self.otherUserFullName = (currentCell.textLabel?.text)! 
    print(self.otherUserFullName) 

    self.otherUserUid = (currentCell.detailTextLabel?.text)! 
    print(self.otherUserUid) 

} 

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) { 
    if segue.identifier == "jsqDirectory" { 
     if let viewController = segue.destinationViewController as? JSQViewController{ 

      viewController.senderDisplayName = self.fullName 
      viewController.senderId = self.firebase.authData.uid 

      viewController.otherUid = self.otherUserUid 
      viewController.otherUser = self.otherUserFullName 
     } 
    } 
} 

override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { 

    let cell = tableView.dequeueReusableCellWithIdentifier("directoryCell") as UITableViewCell! 
    let directoryItem = items[indexPath.row] 

    cell.textLabel?.text = directoryItem.fullName 
    cell.detailTextLabel!.text = directoryItem.key 
    cell.detailTextLabel!.hidden = true 

    return cell 
} 

答えて

0

あなたはthissのような関数の最後にセグエを実行する必要があります。..

let indexPath = tableView.indexPathForSelectedRow! 

let currentCell = tableView.cellForRowAtIndexPath(indexPath)! as UITableViewCell 

self.otherUserFullName = (currentCell.textLabel?.text)! 
print(self.otherUserFullName) 

self.otherUserUid = (currentCell.detailTextLabel?.text)! 
print(self.otherUserUid) 
self.performSegueWithIdentifier("jsqDirectory", sender: self) 
+0

感謝メイト。出来た! –

+0

あなたは次のビューコントローラに値を渡すよりも早すぎてセグエフを実行していました。この答えを[正解]とマークしてください –