2012-06-28 8 views
0

나는 단지 기본값 인 셀을 표시하는 UITableViewController가 있습니다. 각 셀을 터치하고 첫 번째보기의 각 셀에있는 "계정"내에있는 목록으로 이동할 수 있습니다. prepareForSegue 및 속성 설정 설정

은 내가 SEGUE와 함께 모든 것을 연결 한 후 처음으로보기에 나는 전화 :

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { 
    if ([segue.identifier isEqualToString:@"showDetail"]) { 
     NSIndexPath *indexPath = [self.tableView indexPathForSelectedRow]; 
     Account *nextAccount = [self.list objectAtIndex:indexPath.row]; 
     DetailViewController *viewController = (DetailViewController *)[segue destinationViewController]; 
     viewController.account = nextAccount; 
    } 
} 

하고 상세 뷰의 viewDidAppear에 : 내가 말 (BOOL)이 애니메이션 :

- (void)viewDidAppear:(BOOL)animated { 
self.list = [self.account.list mutableCopy]; 
} 

및 다음 세부 뷰에있는 UITableViewController 있지만 cellForRowAtIndexPath : 메서드를 self.list 액세스 할 수 있지만 작동하지 않는 것. 나는 내 cellForRowAtIndexPath를 알고있다. 이전에이 메소드로 템플릿 작업을했기 때문에 제대로 작동했다. prepareForSegue : 작동하지 않거나 속성을 설정하지 않은 것 같습니다.

미리 감사드립니다.

답변

0

아마도 viewDidAppear이 호출되기 훨씬 전에 상세 테이블 뷰를 설정하려고합니다. 대신 데이터 모델에 대한 세터를 무시하려고 : 뷰를로드하기 전에

-(void)setList:(List*)list // or whatever type list is 
{ 
    if (_list != list) { 
     _list = [list mutableCopy]; 
    } 
} 

는 그런 다음 복사본을 생성한다. 또한

당신이 viewDidAppear를 대체려고하는 경우에, 슈퍼 호출해야합니다 :

[super viewDidAppear]; 
확인
0

NSLog를 사용하여 각 요소! = nil인지 확인하십시오. (nextAccount, etc.) Objective C는 오류 메시지를 던지지 않고도 행복하게 nil 객체에 메시지를 보낼 수 있습니다.

segue 조건문에 log 문을 넣어 호출되는지 확인하십시오.

+0

나 시도 가게를 – muscletech