перед результатами поиска, мои didSelectRowAtIndexPath
работает отлично:didSelectRowAtIndexPath работает неправильно с результатов поиска
override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
performSegueWithIdentifier("fromContactsToChat", sender: OneRoster.userFromRosterAtIndexPath(indexPath: indexPath))
}
, но когда я ищу что-то и нажмите на результат, он видит мой контакт как старый мобильный indexPath Tableview. Например:
Сначала мой Tableview выглядит как:
Third User
First User
Second User
Когда я ищу First
он показывает мне
First User
, но когда я нажимаю на него, он видеть мою First User
, как Third User
из моего старого стола, поэтому там
OneRoster.userFromRosterAtIndexPath(indexPath: indexPath))
Я иду t Third User
учетные данные. Как я могу его обновить и исправить? Когда я нажимаю на ячейку на экране поиска, она откроется именно для этого найденного контакта.
Если у вас есть какие-либо вопросы, спрашивайте меня, пожалуйста
UPDATE
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> onlineUserCell {
let cell:onlineUserCell = self.tableView.dequeueReusableCellWithIdentifier("Cell", forIndexPath: indexPath) as! onlineUserCell
var us : User
if tableView == self.searchDisplayController!.searchResultsTableView {
us = filteredUsers[indexPath.row]
cell.username.text = us.name
cell.avatarImage.image = us.image
tableView.rowHeight = 60
cell.avatarImage.layer.cornerRadius = cell.avatarImage.frame.size.height/2
cell.avatarImage.clipsToBounds = true
} else {
let user = OneRoster.userFromRosterAtIndexPath(indexPath: indexPath)
let photoData = OneChat.sharedInstance.xmppvCardAvatarModule?.photoDataForJID(user.jid)
cell.greenIndicator.alpha = 1
if user.isOnline() {
cell.greenIndicator.backgroundColor = UIColor.greenColor()
} else {
cell.greenIndicator.backgroundColor = UIColor.redColor()
// here here
}
cell.username.text = user.displayName
configurePhotoForCell(cell, user: user)
cell.avatarImage.layer.cornerRadius = cell.avatarImage.frame.size.height/2
cell.avatarImage.clipsToBounds = true
}
return cell
}
UPDATE 2
struct User {
let name : String
let image: UIImage
}
UPDATE 3
public class func userFromRosterAtIndexPath(indexPath indexPath: NSIndexPath) -> XMPPUserCoreDataStorageObject {
return sharedInstance.fetchedResultsController()!.objectAtIndexPath(indexPath) as! XMPPUserCoreDataStorageObject
}
Я верю, что вы «видеть» данные в viewDidLoad, попытайтесь переместить логики для просмотраDidAppear, это должно решить вашу проблему. – Greg
, но я заполняю свой tableView в 'cellForRowAtIndexPath' @Greg –
Можете ли вы опубликовать код для cellForRowAtIndexPath? – Johnykutty