0

1 番目の CategoryViewController と 2 番目の CheckListTableController を含む StoryBoard セグエ アプリケーションを作成しました。カテゴリ(ボタン)に関して、CheckListTableControllerのテーブルビューで別の質問リストを開いています。

tableViewセルでチェックボタンとチェック解除ボタンとそれぞれの色を設定しました。NSMutableArray を取得し、これに indexPath を追加して、特定の色をセルに設定しました。

これらのコントローラー間を移動するときは、tableView セルの色を予約する必要があります。

これを行う方法についてのアイデア。前もって感謝します。

クエリで編集 26Aug13

今、plist ファイルまたは Core データを使用して、同じ機能が必要です。そのユーザーはタスクのセッションを保存して後でアクセスできます。例えば。セッション 1 で、彼は ABC 建物のチェックマークを外し、セッションを保存しました。セッション 2 では、別の場所の XYZ 建物のアクティビティをチェック/アンチェックし、保存しました。

ここではどの方法が適していますか。plist ファイルまたはコア データ? 特定の解決策にリダイレクトできますか。

いくつかのコードで編集

Catergory_ViewController.m 

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender

{
if([segue.identifier isEqualToString:@"chkListTable"])
{
     NSString *bldgArrayString = [[NSString alloc] initWithFormat:@"bldg"];
    checkListTableViewController *chk= segue.destinationViewController;

    chk.gotquestArrayString = bldgArrayString;   

}
}



checkListTableViewController.m 


- (void)viewDidLoad
{
[super viewDidLoad];
if ([gotquestArrayString isEqual:@"bldg"])
{

    buildingQuest = [[NSMutableArray alloc]initWithObjects:@"Motor vehicles are not  parked in the space",

                     @"Lightning protection system (Electronic)",

                     @"Lightning protection systems available on all buildings",

                     @"Reception facilities in order and not damaged",
}
}
 //tableView button method where indexPath added to MutableArray
-(void)yesAction:(id)sender
{
arrayCheckUnchek = [[NSMutableArray alloc]init];
UIButton *button = (UIButton *)sender;
UITableViewCell *cell = (UITableViewCell *)button.superview.superview;
UITableView *curTableView = (UITableView *)cell.superview;
NSIndexPath *indexPath = [curTableView indexPathForCell:cell];
cell.backgroundColor = [UIColor greenColor];
[arrayCheckUnchek addObject:indexPath];
}

- (void)tableView: (UITableView*)tableView
 willDisplayCell: (UITableViewCell*)cell
forRowAtIndexPath: (NSIndexPath*)indexPath
{
// UITableViewCell *Cell = [myChklist cellForRowAtIndexPath:indexPath];
 if ([arrayCheckUnchek containsObject:indexPath])
 {
    cell.backgroundColor = [UIColor greenColor];
 }
 }
4

1 に答える 1

0

1. NSMutable Array を Plist ファイルまたは UserDefaluts に保存する必要があります。その時点で選択を変更した場合 (オン/オフ)、Plist または userdefaluts を更新する必要があります。 2. tableviewcontroller の ViewWillApper メソッドで plist ファイルを読み取ります。このデータを「arraycheckuncheck」に渡します

それがあなたのために働くことを願っています

ハッピーアイコーディング ....

  • NSAnant
于 2013-05-30T02:49:19.287 に答える