두 개의 정적 셀 사용자 및 위치가있는 ConfigureTableViewController가 활성화 된 tableview가 있습니다. 사용자 tableview 셀은 usersSegue를 통해 ListUserTableViewController에 연결됩니다.CoreData 및 대리자를 통해 정적 tableView 셀간에 변수 전달
가protocol UserSelectionDelegate{
func userDidSelectUser(userIdentifier:NSString)
}
내가 ListUserTableViewController에서 사용자를 선택하고 대리인 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
}
}
}
}
}
을 구현함으로써 ConfigureTableViewController에 건네 위치에있는 tableview 셀 SEGUE locationsSegue
ListUserTableViewController 통해 LocationTableViewController에 연결되어 프로토콜을 가지고 지금까지 그렇게 좋은 ..
그러나 지금, 나는 내가 사용자 이름을 가지고,하지만 난 LocationTableViewController에 ConfigureTableViewController을 떠나 갈 때, 나는 잃을 ConfigureTableViewController에 ListUserTableViewController에서 전환으로 locationsSegue
를 DB에서 가져온 사용자 이름을 가지고 SEGUE를 통해 LocationTableViewController하기 위해 보내려면 fullName의 범위
어떻게 든 계산 된 fullName 값을 일부 영구 저장소에 저장해야하므로 CoreData의 테이블에 저장해야합니다. 나는 이것을 피하고 싶다. 그것은 많은 일로 보인다.
일종의 델리게이트 체인을 사용하여 LocationTableViewController가 ConfigureTableViewController에 정의 된 델리게이트를 구현하고 이미 구현 된 다른 UserSelectionDelegate의 데이터를 가져오고 그 범위에 fullName을 가질 수 있습니다.
이 문제를 해결하는 방법을 알려주십시오.
사용자 ID를 함께 전달하려고하므로 Db에서 사용자 이름을 얻을 수 있습니다. 귀하의 대답은 부분적인 해결책을 제시합니다. 그러나 나는 그것을 받아 들일 것이다. – vrao