2011-08-10 4 views
0

사용자가 슬라이더를 사용하여 섹션을 만들 수있는 테이블 뷰가 있습니다. 따라서 각 섹션에는 원하는 수의 사용자가있을 수 있습니다. 그 tableview의 상태를 저장하고 다시 올 때 다시로드하려고합니다.테이블 뷰 저장 및로드 상태

저는 코어 데이터를 사용하고 있기 때문에 각 사람에게 행과 섹션 속성을 줄 수 있다고 생각했습니다. 그래서 나는 그것을 저장할 수 있지만 다시 나타날 때 tableview 채우기 위해 이러한 값을 사용하는 가장 좋은 방법을 모르겠습니다.

섹션으로 분리 할 수있는 많은 그룹이 있기 때문에 NSUserDefaults가 가장 잘 작동한다고 생각하지 않습니다. 나는 며칠 동안이 일을하는 가장 좋은 방법으로 고심하고 있었고 여전히 어떤 길로 나아갈 지 확신하지 못했습니다.

(미 히어의 메타 당) :

// Set core data values 
    int sec = 0; 
    int row = 0; 
    for (NSArray *section in groupsArray) { 
     for (People *person in section) { 
      [person setSubgroupSection:[NSNumber numberWithInt:sec]]; 
      [person setSubgroupRow:[NSNumber numberWithInt:row]]; 
      row++; 
     } 
     sec++; 
     row = 0; // new section so restart the row count 
    } 
+0

코드를 저장하십시오. –

+0

데이터 저장 코드를 추가했습니다. – tazboy

답변

2

CoreData에 이미 익숙하다면 자신이 설명하는 계획을 고수해야합니다. 내가보기 엔 너는 TableViewInfoManagedObject:NSManagedObject을 만들어야한다. 이 TableViewInfoManagedObject에는 예를 들어 @dynamic numberOfSections과 같은 멤버가 있어야 테이블보기가 작동하기 위해 필요한 항목을 설명합니다.

사람들을 관리하기 위해 CoreData를 사용하는 경우 이미 관계를 사용하여 numberOfSectionsnumberOfGroups 또는 People:NSManagedObject에 매핑하십시오.

또한 슬라이더에 의해 완전히 결정된 상태를 "저장"할 적절한시기를 고려해야합니다. 이 경우 valueChanged에 IBAction을 구현할 수 있습니다.

편집 0 : 제공 한 스 니펫을 기반으로 루프의 마지막에 필요한 필수 정보가있는 것처럼 보입니다. sec의 최종 값은 UITableViewDataSource 대리자 메서드 -(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView과 일치해야하며 어쨌든 NSSortDescriptor에 의해 수행되어야하는 일부 정렬 순서를 얻으 려하지 않는 한 People 개체의 행 번호를 설정하는 이유는 확실하지 않습니다. 따라서 tableView:numberOfRowsInSection[[peopleinSection: section] count]과 같은 것을 반환해야하며 tableView:cellForRowAtIndexPathcell.textLabel.text = [[[peopleInSection:indexPath.section] objectAtIndex:indexPath.row] getPersonName]과 같은 셀을 반환하도록 설정되어야합니다. 말이된다?

+0

각 사람마다 섹션과 행을 저장하는 것이 좋지만 tableView : cellForRowAtIndexPath에서 해당 정보를 사용하여 테이블을 올바르게 채울 방법을 모르겠습니다. – tazboy

+0

명확히하려면 : 모든 사람이 tableView의 _one_ 섹션에 있습니까? –

+0

예, 모든 사람은 섹션에 있고 단 하나의 섹션에 있습니다. 그룹에 6 명이 있으면 2 인 (행)의 하위 그룹 (섹션 3 개) 또는 3 인의 하위 그룹 2 개가있을 수 있습니다. – tazboy

1

어떻게 저장해야하는 각 개체에 대한 클래스 (NSObject의 하위 클래스)를 생성하고, 그 클래스에 당신이 속성을 추가 할 수 있습니다에 대한 각 개체. 그런 다음 NSKeyedArchiver/Unarchiver를 사용하여 개체를 저장하고 다시로드하여 다시 사용할 수 있습니다.

0

행과 섹션을 인수로 취해 배열을 검색하여 해당 특정 인물을 반환하는 함수를 만듭니다 .... 내 포인트를 얻었습니까?