2010-05-21 2 views
1

누구나 제발, 제발 고통스러워 할 수 있습니다. 얼마나 지옥에 당신이 하나의 .m 파일에서 생성 된 (int 값)을 전달하는 지에 대한 간단한 예제를 작성하여 내 불행에서 나를 데려가 주실 수 있습니다. .m 파일. [/ CODE = CGPDFDocumentGetPage PDF (1) [CODE] CGPDFPageRef 페이지 : QuartzDemo라는 사과 데모 애플리케이션에서 QuartzDemo 예제 응용 프로그램을 수정하는 데 도움이됩니다.

이 파일은 다음의 코드를 갖는다 QuartzImages.m

라는 파일이 존재 ] 해당 행의 (pdf, 1)을 확인하십시오. 이 숫자는 정수 변수로 대체해야합니다.

이제 MainViewController.m이라는 파일도 있습니다. 그 파일에는 방법이 있습니까? - (void) viewDidLoad

그 방법에서, 나는 원하는 모든 숫자로 망할 "1"을 대체 할 정수 변수에 번호를 할당하려고합니다.

나는 아이폰 3 개발 도서, dev 문서 및 신이 결과없이, 무엇을 알지 못하는지를 읽는 것을 끝내려고 노력하고있다.

아무 도움이 크게 감사하겠습니다 ...

한숨. 이것이 당신의 불행에서 이동합니다 희망

답변

0

...

은 QuartzImages.m의 QuartzPDFView 클래스는 실제로 MainViewController의있는 viewDidLoad에서 인스턴스화되지 않습니다. 클래스 ID는 메뉴를 제공하는 테이블 뷰가 참조하는 사전/배열에만 저장됩니다.

실제 쿼츠 뷰 객체는 QuartzViewController에 보관되며,이 자체는 MainViewController의 didSelectRowAtIndexPath 메소드에서 생성됩니다.

QuartzViewController가 생성되어 네비게이션 컨트롤러에 푸시 될 때, QuartzViewController의 viewDidLoad가 실행되어 self.quartzView를 하위 뷰로 추가한다. quartzView (QVC의 viewDidLoad 위)에 대한 getter 메소드는 결국 quartz 뷰 객체를 생성한다.

  1. 이를 설정 QuartzPDFView 클래스
  2. 에 PAGENUMBER 특성을 추가하십시오

    그래서 여기 (가장 우아한하지 않을 수) 그것을 할 방법은 하나의 주어진 페이지를로드 석영보기에게 속성

작은 문제는 QuartzViewController의 quartzView 속성이 QuartzPDFView뿐만 아니라 다른 종류의 쿼츠 뷰일 수 있다는 것입니다. 따라서 pageNumber 속성을 설정하기 전에 QuartzPDFView인지 확인해야합니다.

1 단계 : QuartzPDFView 클래스에 PAGENUMBER 특성을 추가하십시오

//QuartzImages.h 
@interface QuartzPDFView : QuartzView 
{ 
    CGPDFDocumentRef pdf; 
    int pageNumber; 
} 
@property (nonatomic, assign) int pageNumber; 
-(void)drawInContext:(CGContextRef)context; 
@end 

//QuartzImages.m 
@implementation QuartzPDFView 
@synthesize pageNumber; 
... 
CGPDFPageRef page = CGPDFDocumentGetPage(pdf, pageNumber); 
... 

2 단계 : MainViewController

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    QuartzViewController *targetViewController = [self controllerAtIndexPath:indexPath]; 
    if ([targetViewController.quartzView isKindOfClass:[QuartzPDFView class]]) 
    { 
     ((QuartzPDFView *)targetViewController.quartzView).pageNumber = 1; 
     //replace 1 with whatever number or variable you want 
    } 
    [[self navigationController] pushViewController:targetViewController animated:YES]; 
} 

샘플 응용 프로그램에서 PDF의 didSelectRowAtIndexPath 방법이 속성을 설정 도중에 하나 이상의 페이지가없는 것 같습니다.

+0

이것은 내가 찾고있는 답변입니다. 이것은 답변으로 만 분류 할 수 없습니다. 그것은 아마도 "internets"에있는 누군가가 나를 위해 해준 가장 친절한 일일 것입니다. 정말 고마워요. 단어는 이것이 내가 작업하기를 원했던 것처럼 마침내 컴파일되고 작동했을 때 내가 어떻게 느꼈는지를 설명 할 수 없다. 우리의 길은 십자가가 넘으면 최소한 저녁과 맥주를 마셔야한다. 감사합니다. – BittenApple

관련 문제