私はiOS開発に少し慣れていません。これらのメソッドを2つの別々のビューコントローラー(マスタービューコントローラーとエディタービューコントローラー)で宣言および実装しており、エディターからマスターにデータを渡す必要があります。マスターには、適切な名前で更新する必要があるテーブルビューが含まれています。(注:iPhone用のデフォルトのマスター/詳細アプリケーションテンプレートを使用しました。シングルビューアプリケーションでこれを手動で作成しませんでした)
現在、MasterViewController内のUITableViewは新しいセルで更新されません。とても忙しい一週間でした。何かが足りないに違いありません。マスタービューコントローラーのコードは次のとおりです。
@implementation FTMasterViewController
@synthesize bPlusMinusField, cPlusMinusField, cTerm, bTerm;
-(void) passTrinomial:(CCTrinomial *)tri withBPlusMinusField:(NSString *)bField withBTerm:(double)bTermField withCPlusMinusField:(NSString *)cField withCTerm:(double)cTermField {
//allocate the array
if (!self.trinomials) {
self.trinomials = [[NSMutableArray alloc] init];
}
//set Master VC properties to tri fields passed in
self.bPlusMinusField = bField;
self.cPlusMinusField = cField;
self.bTerm = bTermField;
self.cTerm = cTermField;
NSString *trinomial = [NSString stringWithFormat:@"x² %@ %g %@ %g", bPlusMinusField, bTerm, cPlusMinusField, cTerm];
[self.trinomials insertObject:trinomial atIndex:0];
NSLog(@"%lu", (unsigned long)[self.trinomials count]);
}
#pragma mark - Table View
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
return [self.trinomials count];
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"Cell" forIndexPath:indexPath];
cell.textLabel.text = [NSString stringWithFormat:@"x² %@ %g %@ %g", bPlusMinusField, bTerm, cPlusMinusField, cTerm];
return cell;
}
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
if ([[segue identifier] isEqualToString:@"showDetail"]) {
NSIndexPath *indexPath = [self.tableView indexPathForSelectedRow];
NSDate *object = _objects[indexPath.row];
[[segue destinationViewController] setDetailItem:object];
}
}
@end
これは、問題を修正するために必要と思われるコードです。明らかに、実装の残りの部分にはデフォルトのオーバーライドされたメソッドがあります。
これは、エディタービューコントローラーのコードです。考えが表示されたら、はい、「完了」ボタンはメインストーリーボードの-handleDoneButtonPushed:メソッドにリンクされています。
-(IBAction)handleDoneButtonPushed:(id)sender {
[self dismissViewControllerAnimated:YES completion:NULL];
FTMasterViewController *masterVC = [[FTMasterViewController alloc] init];
[masterVC passTrinomial:factoring withBPlusMinusField:bPlusMinusField.text withBTerm:[bTriField.text doubleValue] withCPlusMinusField:cPlusMinusField.text withCTerm:[cTriField.text doubleValue]];
}
このエディタービューコントローラーは、UITextFieldの形式でいくつかの値を取得し、そのクラスのオブジェクトを介してマスタービューコントローラーに渡します。繰り返しますが、上部のナビゲーションバーの[完了]ボタンをクリックすると、エディタービューコントローラーが閉じられますが、取得した値でテーブルビューが更新されません。
助けていただければ幸いです。:)