2012-09-10 1 views
0

나는 이것을 스스로 알아 내려고 노력했지만, 그것을 성취하는 방법에 대해서는 전혀 모른다. 본질적으로 내가하려는 것은 다음과 같습니다.

상위 목표 : UIProgressView을 의미가 아닌 다른 유형의 표시기로 사용하십시오.
Details : 사용자가 '목표'를 완료하면 (예 : UIViewController의 "complete"라는 UIButton을 눌러서이 하나를 "View Controller 1"이라고 부름) 두 번째로 UIProgressView를 업데이트하고 싶습니다. UIViewController (이것을 "View Controller 2"라고 부름). View Controller 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

아마 당신의 문제를 해결하지만, C에서 0과 1/8이 같음을 기억하십시오. ** 1.0/8 ** – Vladimir

+0

나는 블라디미르가 옳다고 말한 것을 믿습니다. 이 목표를 달성하기위한 또 다른 옵션은 2 개의 UIView가 중첩 된 상태로 진행률 표시 줄을 만드는 것입니다. 그러면 원하는대로 사용자 정의 할 수 있습니다. 그냥 기본보기 너비/높이/배경색보기에 대한 색상, 다음 진행률 및 기본 너비 (따라서 defaultWidth/8 의미하는 중첩 된 막대의 너비를 계산하는 방식의 8 분의 1입니다.) – 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 당신이해야 할 것은 당신이 NSUserDefaults에 저장된 값을 얻을 진행률 표시 줄의 값을 업데이트해야합니다있는 viewDidLoad 방법 또는 ViewWillAppear 방법에

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

고마워요 많은! 나는 NSNumber와 재 작업해야했지만, 그건 아무것도 아니 었어. 너 락! – jpcguy89

관련 문제