У меня есть табличное представление ConfigureTableViewController с двумя статическими ячейками «Пользователи и местоположения». Пользователи tableview cell подключены к ListUserTableViewController через usersSegue. Местоположение TableView ячейка соединена с LocationTableViewController через SEGUE locationsSegueПередача переменных через статические ячейки tableView через CoreData и делегаты
ListUserTableViewController имеет протокол:
protocol UserSelectionDelegate{
func userDidSelectUser(userIdentifier:NSString)
}
я выбираю пользователя из ListUserTableViewController и передать его в ConfigureTableViewController, путем реализации делегата UserSelectionDelegate
class ConfigureTableViewController: UITableViewController, UserSelectionDelegate {
…
…
// function pulls user’s fullName from Core Data table based on userIdentifier
func userDidSelectUser(userIdentifier : NSString) {
var fetchedResults: [User] = []
let context = (UIApplication.shared.delegate as AppDelegate).persistentContainer.viewContext
userIdentifierString = userIdentifier
do {
fetchedResults = try context.fetch(User.fetchRequest())
}
catch {
print ("fetch task failed")
}
if fetchedResults.count > 0 {
for user in fetchedResults{
let aUser:User = user
if (aUser.uniqueId! == userIdentifierString as String) {
let fullName = aUser.firstName! + " " + aUser.lastName!
print("selected user full name: " + (fullName as String))
}
else {
continue
}
}
}
}
}
пока что так хорошо ..
Но теперь я хочу взять имя пользователя извлекается из БД и отправить в LocationTableViewController через Segue locationsSegue
Как я перехода от ListUserTableViewController к ConfigureTableViewController У меня есть имя пользователя, но когда я оставляю ConfigureTableViewController и перейти к LocationTableViewController, я теряю область fullName.
Я должен как-то сохранить это значение вычисленного fullName в каком-то постоянном хранилище, поэтому я должен положить его в таблицу в CoreData. Я хочу избежать этого, что, кажется, много работы.
Могу ли я использовать цепочку делегатов, чтобы LocationTableViewController мог реализовать делегат, определенный в ConfigureTableViewController, и вытащить данные из другого UserSelectionDelegate, который уже был реализован, и имеет полное имя в своей области.
Пожалуйста, сообщите, как решить эту проблему?
Я пытаюсь передать идентификатор пользователя вместе с ним, поэтому я могу получить имя пользователя из Db. Ваш ответ дает частичное решение. Но я соглашусь. – vrao