2010-05-21 24 views
1

任何人都可以請哦,甜蜜的痛苦,請通過編寫一個簡單的例子,告訴我如何將一個數字(int值)在1 .m文件中創建給另一個.m文件。幫助修改QuartzDemo示例應用程序

在稱爲QuartzDemo蘋果演示應用程序,有一個稱爲QuartzImages.m

此文件的下面一行代碼文件: [CODE] CGPDFPageRef頁= CGPDFDocumentGetPage(PDF,1); [/ CODE ] 注意該行中的(pdf,1)。這個數字應該被一個整數變量替換。

現在,還有一個名爲MainViewController.m的文件。 在那個文件中,有一種方法?所謂的 - (void)viewDidLoad

在這種方法中,我想分配一個數字的整數變量,將取代該死的「1」與我想要的任何數字。

我一直在拉我的頭髮試圖完成這件事,閱讀開始的iPhone 3開發的書,開發文檔和上帝知道什麼,沒有結果。

任何幫助將不勝感激...

感嘆。

回答

0

希望這把你帶離痛苦......

在QuartzImages.m的QuartzPDFView類不MainViewController的viewDidLoad中實際實例。在那裏,它的類標識只存儲在提供菜單的表視圖引用的字典/數組中。

實際的石英視圖對象保存在QuartzViewController中,它本身是在MainViewController的didSelectRowAtIndexPath方法中創建的。

當QuartzViewController被創建並推送到導航控制器時,QuartzViewController的viewDidLoad觸發器將self.quartzView添加爲子視圖。 quartzView的getter方法(在QVC的viewDidLoad上方)最終創建石英視圖對象。

於是告訴石英視圖加載指定頁面,在這裏是做(未必是最優雅的)的一種方法:

  1. 一個PAGENUMBER屬性添加到QuartzPDFView類
  2. 設置此屬性在didSelectRowAtIndexPath方法方法中MainViewController

次要問題是,在該QuartzViewController屬性quartzView可以是不同種類的石英次(不只是QuartzPDFView)。所以你需要在嘗試設置pageNumber屬性之前檢查它是否爲QuartzPDFView。

步驟1:PAGENUMBER屬性添加到QuartzPDFView類:

//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:設置在didSelectRowAtIndexPath方法方法此屬性在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順便說一下,似乎沒有超過一頁的內容。

+0

這是我正在尋找的答案。這不能被分類爲唯一的答案。這可能是「互聯網」上爲我所做的最善良的事情。 非常感謝。當我終於完成編譯和工作,因爲我希望它能夠工作時,詞彙無法描述我的感受:) 如果我們的路徑一直存在,您至少應該有一頓晚餐和啤酒。 謝謝。 – BittenApple 2010-05-22 09:21:11