2012-09-10 48 views
0

我已經嘗試瞭解自己的情況,並且完全無法知道如何完成它。基本上我試圖做的是:

總體目標:使用UIProgressView作爲指標的「不同類型」指標。
詳細信息:當用戶「完成」一個「目標」(通過在單獨的UIViewController中按下名爲「complete」的UIButton,我們稱之爲「View Controller 1」)我希望它在第二個更新UIProgressView UIViewController (稱這個爲「View Controller 2」)。視圖控制器2中有幾個UIProgressViews,每個代表「已完成」類別中的#個目標。所以我喜歡有一個空隙方法View Controller 2這樣的:使用UIProgressView作爲目標的進度指示器

(void)progressMade:(NSString *)category 
{ 
    categoryOneProgressView.progress += 1/8 ; 
    //this would be called from View Controller 1, after the "complete" button was pressed. 
} 

enter image description here

預先感謝您的幫助。

+1

這可能是解決你的問題的方法,但記住1/8等於0在c中,你需要的是** 1.0/8 ** – Vladimir

+0

我相信弗拉基米爾說的是正確的。實現這個目標的另一個選擇是使用2個UIViews疊加你自己的進度條 - 然後你可以完全自定義它,只要你喜歡。只需爲背景視圖設置默認的寬度/高度/顏色,然後根據進度和默認寬度計算疊加條的寬度(因此defaultWidth/8意味着您是完成方式的1/8) – bgoers

回答

0

你可以做的是在VIEW CONTROLLER 1中觸摸按鈕,你可以將在特定類別中完成的目標值存儲起來。示例代碼瀏覽器1:

-(void)methodTriggeredOnCompleted:(NSString *)category 
{ 
    //Do you calculation for progress of a category 

    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; 

    [defaults setValue:saveProgressValue forKey:category]; 
    [defaults synchronize]; 
} 

現在,在視圖控制器2你應該做的是在viewDidLoad方法或在viewWillAppear中的方法,你應該讓你存儲在NSUserDefaults的價值,並在進度條的值更新

-(void)viewDidLoad 
{ 
    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; 
    int val = [defaults valueForKey:category]; 
    categoryOneProgressBar.progress = val; 
} 
+0

非常感謝許多!我不得不用NSNumber重做,但那沒什麼......你搖滾! – jpcguy89