2016-04-08 19 views
0

我推otherUserUid和otherUserFullName到另一个视图控制器,但它不是立即调用。信息滞后,需要2次点击才能显示信息。准备延迟时间。信息滞后,但呈现

我认为preparForSegue:之前调用didSelectRowAtIndexPath:任何解决方案如何解决这个问题?

干杯!

倍率FUNC的tableView(的tableView:UITableView的,didSelectRowAtIndexPath方法indexPath:NSIndexPath){

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
在didSelectRowAtIndexPath方法

你必须在像thiss功能的结束时执行SEGUE ..

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

你在执行segue的方式比将值传递到下一个视图控制器还太早。确保将此答案标记为正确并竖起大拇指 –