2012-05-16 2 views
1

Objective-C 및 iOS 응용 프로그램 개발에 상당히 익숙해 져서 제 질문에 대한 대답이 간단하면 사과드립니다. 하나의보기 컨트롤러에서 다른보기 컨트롤러로 GTGift 개체의 포인터를 보내려고합니다. I는 다음 코드를 입력 할 때, 객체는 전송 및 제 뷰 컨트롤러의 인스턴스 변수에 저장된다 :tableView : didSelectRowAtIndexPath : inconsistency

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { 
    gift = [[[GTGiftStore sharedStore] allGifts] objectAtIndex:[indexPath row]]; 
    GTDetailViewController *dvc = [[self storyboard] instantiateViewControllerWithIdentifier:@"detailVC"]; 
    [[self navigationController] pushViewController:dvc animated:YES]; 
} 

그러나

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { 
    GTGift *selectedGift = [[[GTGiftStore sharedStore] allGifts] objectAtIndex:[indexPath row]]; 
    GTDetailViewController *dvc = [[self storyboard] instantiateViewControllerWithIdentifier:@"detailVC"]; 
    [dvc setDetailGift:selectedGift]; 
    [[self navigationController] pushViewController:dvc animated:YES]; 
} 

, I는 상기 제 뷰 컨트롤러에 코드를 입력 할 때 두 번째보기 컨트롤러의이 코드는 다음과 같습니다.

- (void)viewWillAppear:(BOOL)animated { 
    GTGiftsViewController *gvc = [[self storyboard] instantiateViewControllerWithIdentifier:@"giftsVC"]; 
    detailGift = [gvc gift]; 
    NSLog(@"%@", detailGift); 
} 

detailGift가 null을 반환합니다.

필자는 필자의 삶에 대해 이해할 수 없으며, 작동하지 않는 코드 세그먼트와 유사한 접근법을 사용할 수 있다면 내 응용 프로그램에 훨씬 더 실용적입니다. 누구나 나를 위해이 주제에 대해 빛을 비출 수 있거나 다른 방향으로 나를 가리켜 동일한 일을 마치면 정말 고맙겠습니다!

답변

0

귀하의 문제는 "인스턴스화"란 단어가 의미하는 바를 의미합니다. :-)

GTGiftsViewController 개체에서 선택한 선물에 대해 전혀 모르는 아주 새로운 GTGiftsViewController 개체를 만듭니다.

(이런 종류의 일을의 "스토리 보드 방법은"첫 번째 뷰 컨트롤러에서 prepareForSegue:sender: 방법을 생성하고이 일을하는 것입니다.)

+0

이 좋아 내가 보는 것이주지! 고맙습니다! 하지만 난 그걸 어떻게 사용할 지 잘 모르겠다 ... 나는 UITableView가 있고 테이블 뷰의 어떤 객체가 눌려 졌는지를 결정할 수 있어야하고 indexPath를 얻지 않고 어떻게 할 수 있는지 모른다. from tableView : didSelectRowAtIndexPath : –

+0

segue가 테이블 뷰 셀에서 오는 것으로 정의 된 경우 해당 셀은'prepareForSegue : sender :'의'sender '여야합니다. 테이블 뷰에 셀의 인덱스 경로를 요청할 수 있습니다. –

+0

고마워요! 나는 그것을 시도하고 그것이 어떻게되는지 보게 될 것이다! –

관련 문제