iOSでエクササイズベースのアプリを作成しています。私は、お気に入りのリストを含めることができます。現在のところ、私はあなたがボタンをタップしてナビゲーションコントローラを介してアクセスするお気に入りリストに追加するエクササイズライブラリを持っています。私は適切にタイトルを店に渡して、それをお気に入りテーブルビューに配置することができます。私はテーブルビューのセルのタイトルに基づいて特定のexerciseViewController
をロードし、実行の間に保存することができます。しかし、私は演習を削除しようとすると問題が発生します。私は何時間も苦労してきました。UITableViewを正しく読み込む方法
これはシナリオである:
私は私のお気に入りへの2つの演習を追加しました:最初の行にあるexercise A
、及びexercise B
秒です。しかし、お気に入りリストにアクセスしたときに、その詳細を表示するにはexercise A
を選択し、それを非表示にして、お気に入りリストに戻って戻る(戻る)と、正しく更新されません。行数(現在は1)が正しくロードされていますが、それでもexercise A
タイトル(exercise B
タイトルが表示されます)が表示されます。しかし、ホームページに戻ってお気に入りの運動を選択すると、それは正しく表示されます - exercise B
というタイトルのみが表示されます。私は[[self tableview] reload]
をviewWillAppear
(これは最も一般的な答えと思われる)、通知、プロトコルなどを書いてみましたが、まだこの問題を抱えています。それが正常に動作するように見える唯一の時間は、お気に入りリストにホームページからアクセスし、viewDidLoad
が呼び出されたときです。
テーブルが表示され、ロードする必要がないときに、テーブルを正しく表示するにはどうすればよいですか?
お気に入りのテーブルビュー
FavsVC.m
- (void)viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];
[self.tableView reloadData];
NSLog(@"APPEARING");
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"UITableViewCell"];
if (!cell) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"UITableViewCell"];
NSArray *fav = [[NSUserDefaults standardUserDefaults] objectForKey:@"Favorites"];
NSString *name = [fav objectAtIndex:indexPath.row];
cell.textLabel.text = name;
}
return cell;
}
//This the method is in my store, and gets called when I click on an exercise to add or delete.
- (id)addToFavorites:(NSString *)title
{
favoriteTitles = [[NSUserDefaults standardUserDefaults] objectForKey:@"Favorites"];
if ([favoriteTitles containsObject:title]) {
NSLog(@"exercise removed");
//[favoriteTitles removeObject:title];
NSMutableArray *newArray = [NSMutableArray arrayWithArray:favoriteTitles];
[newArray removeObject:title];
[[NSUserDefaults standardUserDefaults] setObject:newArray forKey:@"Favorites"]; //newArray
[[NSUserDefaults standardUserDefaults] synchronize];
} else {
NSLog(@"exercise added");
//[favoriteTitles addObject:title];
NSMutableArray *newArray = [NSMutableArray arrayWithArray:favoriteTitles];
[newArray addObject:title];
[[NSUserDefaults standardUserDefaults] setObject:newArray forKey:@"Favorites"]; //newArray
[[NSUserDefaults standardUserDefaults] synchronize];
}
return self;
}
感謝を持っている場合、これは私の問題を解決し、ペン先からあなたの目を覚ましをチェックする必要があります。 – BradRS
喜んで、正しい質問としてそれをフックしてください。 – Martol1ni