2017-01-01 7 views
0

2つの静的なセルのUsersとLocationsを持つConfigureTableViewController対応のテーブルビューがあります。 ユーザーtableviewセルは、usersSegue経由でListUserTableViewControllerに接続します。セグエ介し ロケーションテーブルビューセルがLocationTableViewControllerに接続されているlocationsSegueCoreDataとデリゲートを介して静的なtableViewセル間で変数を渡す

ListUserTableViewControllerプロトコルを有する:

protocol UserSelectionDelegate{ 
     func userDidSelectUser(userIdentifier:NSString) 
    } 

Iは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に渡しますこれまでのところとても良い..

しかし、今、私はユーザー名を持っているが、私はLocationTableViewControllerにConfigureTableViewControllerを残して行くとき、私は失うConfigureTableViewControllerにListUserTableViewControllerから移行したようlocationsSegue

をDBから引っ張っユーザー名を取り、セグエを経由してLocationTableViewControllerするために送りたいですfullNameのスコープ

私は何とか計算されたfullNameの値をいくつかの永久記憶域に保存する必要があります。そのため、CoreDataのテーブルに入れる必要があります。私はこれを避けたい、それは多くの仕事のようです。

LocationTableViewControllerがConfigureTableViewControllerで定義されたデリゲートを実装し、既に実装されているスコープ内にfullNameを持つ他のUserSelectionDelegateからデータを取得できるように、何らかのデリゲートチェーンを使用できますか?

この問題を解決する方法を教えてください。

答えて

0

問題文を混乱:

私はあなたがUserオブジェクトへの変更を保存し、次のビューコントローラでこれらの変更を取得する必要があるのfullName

の範囲を失います。次のView Controllerで同じNSManagedObjectContextを使用する場合は、同じUserオブジェクトを渡すこともできます。

次に、フルネームのすべてのデータがあります。

これは通常、Userクラスのカスタムメソッドとして実装され、独自の姓名を検査し、適切にフォーマットされた文字列を返します。

+0

ユーザーIDを渡すために、私はDbからユーザー名を取得できます。あなたの答えは部分的な解を与える。しかし私はそれを受け入れる。 – vrao

関連する問題