2009-12-12 2 views
3

보기 컨트롤러를 팝업하려고하면 이전보기의 정보가 업데이트되지 않습니다. 예 : View1의 레이블에 텍스트를 표시하는 셀이 있습니다. 셀을 클릭하면 View2로 이동합니다 (예를 들어). View2에서 옵션을 선택하면 popViewControllerAnimated가 View1로 돌아가는 데 사용되지만, 이제 View1의 새 옵션으로 레이블을 업데이트하고 싶습니다.popViewControllerAnimated 정보를 업데이트하지 않습니다. iPhone SDK

내 딜레마는 View2를 팝업 할 때 View1의 레이블이 업데이트되지 않는다는 것입니다. 어떤 아이디어? 나는 [view1 reloadData]를 추가하려고 시도했다. 보기 전에 팝업하지만 행운은 없습니다.

//VIEW1 the cell that displays the label. 
    ringLabel = [[UILabel alloc] initWithFrame: CGRectMake(25, 12.7f, 250, 20)]; 
    ringLabel.adjustsFontSizeToFitWidth = YES; 
    ringLabel.textColor = [UIColor blackColor]; 
    ringLabel.font = [UIFont systemFontOfSize:17.0]; 
    ringLabel.backgroundColor = [UIColor clearColor]; 
    ringLabel.textAlignment = UITextAlignmentLeft; 
    ringLabel.tag = 0; 
    ringLabel.text = [plistDict objectForKey:@"MYOPTION"]; 
    [ringLabel setEnabled:YES]; 
    [cell addSubview: ringLabel]; 
    [ringLabel release]; 


//VIEW2 when cell clicked 
    CustomProfileViewController *cpvc = [CustomProfileViewController alloc]; 
    cpvc.ringtone = [ringList objectAtIndex:indexPath.row]; 
    [cpvc.tblCustomTable reloadData]; 
    [self.navigationController popViewControllerAnimated:YES]; 

답변

6

당신은 첫 번째보기 컨트롤러 -viewWillAppear:을 무시하고 거기에 레이블을 업데이트 할 수 있습니다. 전화 번호는 super입니다.

예 :

- (void)viewWillAppear:(BOOL)animated { 
    // This method is called whenever the view is going to appear onscreen. 
    // (this includes the first time it appears.) 
    ringLabel.text = [plistDict objectForKey:@"MYOPTION"]; 
    [super viewWillAppear:animated]; 
} 
+0

시도해도 효과가 없습니다. 나는 심지어 WillLoad/Didload에서 데이터를 다시로드하려고 시도했다. 루트보기 컨트롤러로 돌아가서 view1 컨트롤러로 돌아 가면 레이블 만 업데이트됩니다. 나는 그것이 왜 업데이트되지 않는지 전혀 모른다! – WrightsCS

+1

viewWillAppear이 호출되는지 확인하십시오 (잘못된 것이거나 잘못되었습니다). plistDict가 MYOPTION 키의 예상 값을 가지고 있는지 확인하십시오. 이것들은 viewWillAppear에서 호출 된 사전의 값을 표시하는 하나의 NSLog에 의해 처리 될 수 있습니다. – gerry3

+1

실제로 viewDidAppear을 추가해야했지만 제대로 작동했습니다. – WrightsCS

0

당신의 plistDict 객체가 무엇입니까? 어떻게 초기화합니까? 두 번째보기가 숨겨진 후에 @ "MYOPTION"키에 대한 올바른 값이 포함되어 있습니까? 볼 수 있듯이 plistDict는 첫 번째 viewController 내부의 객체입니다. 또한 코드의 마지막 4 줄에서 어떤 의미도 볼 수 없습니다. 이로 인해 데이터를 다시로드하지 않고 메모리 누수가 발생합니다.

+0

문자열입니다. 다른 곳에서 같은 방법을 사용했기 때문에 데이터가 올바르게 초기화되었습니다. 문제는 popViewController입니다. Im은 이전 VC가 어떤 이유로 업데이트되도록합니다. 마지막 4 줄에서, CPVC의 벨소리 NSString을 새로운 데이터로 설정하려고 시도하고 있는데, 다른 영역에서도 작동합니다.보기가 터지면 안됩니다! "pushViewController"없이 이전 컨트롤러로 돌아갈 수있는 다른 방법이 있습니까 – WrightsCS

+0

plistDict는 문자열 ????? 그리고 당신은 키에 대한 어떤 가치를 찾으려고 노력합니까 ??? 네 마지막 줄이 작동 할 수있을 때 나는 상상할 수 없다. 그들은 쓸모가 없다. 아래의 많은 사람들처럼, 당신 plist를 확인하라고 제안합니다. 당신의보기 컨트롤러가 터지면 호출됩니다. – Morion

0

dealloc 메소드에서 중요한 것을 잃어 버리지 않았는지 확인하십시오. 몇 주 동안 나를 망 쳤어. 내 대리인의 변수를 가리키는 변수를 해제했습니다.

관련 문제