UITableView
CoreData SQLLite データ ソースと を使用してがありNSManagedObjectContext
ます。
この用語を正しく理解していない場合はご容赦ください。これはまだ数日しか経っていないため、学習中です。
新しい項目をデータ ソースに追加できるように、モーダル ビューの設定を完了しました。したがって、現在の私のロジックは基本的に次のとおりです。アイテムをデータ ソースに追加し、テーブル ビューを更新すると、新しいアイテムが一覧表示されます。
UITableViewCell
ただし、さらに一歩進んで、その任意の項目がクリックされたときに発生する設定済みのセグエを実行したいと考えています。performSegueWithIdentifier:sender
メソッドを使用して、コードでそのセグエを開始します。ただし、送信者は でなければなりUITableViewCell
ません。
したがって、私が持っているものを考えると、データ ソースに追加したばかりのデータがありますが、データ ソース内の新しいアイテムのインデックスはわかりません。UITableViewCell
そのデータを使用して、新しく作成されたアイテムを見つける必要があります。
これを行う方法についてのアイデアはありますか?私は周りを見回してきましたが、私が期待しているように見えるサンプルコードを見たことがありません.
以下は、モーダル ビューから新しいアイテムをデータ ソースに追加するコードです。
#pragma mark - ComposeThreadViewControllerDelegate Methods
- (void)composeThreadViewController:(ComposeThreadViewController *)controller didFinishComposing:(Thread *)thread {
// get the context
NSManagedObjectContext *context = [(id)[[UIApplication sharedApplication] delegate] managedObjectContext];
// add this new thread to our local cache
NSManagedObject *managedThread = [NSEntityDescription insertNewObjectForEntityForName:@"Thread" inManagedObjectContext:context];
[managedThread setValue:thread.id forKey:@"id"];
[managedThread setValue:thread.title forKey:@"title"];
[managedThread setValue:thread.author forKey:@"author"];
[managedThread setValue:thread.text forKey:@"text"];
[managedThread setValue:thread.location forKey:@"location"];
//save the new thread
[context save:nil];
// begin refreshing the list of threads
[self.tableView reloadData];
// dismiss the modal view
[self dismissModalViewControllerAnimated:YES];
// bring up the view item view
[self performSegueWithIdentifier:@"viewThreadSegue" sender:self];
}