2012-07-17 3 views
0

을 먼저 암기하지 않습니다. 우선 스토리 보드를 사용하고 있습니다. 먼저 한 클래스에 의해 제어되는 viewcontroller를 만들었습니다.이 뷰에서 사용자는 숫자를 입력하는 텍스트 필드이고 버튼은 모달을 사용하여 두 개의 itens "one"과 "two"가있는 tabbar 컨트롤러로 사용자를 이동시킵니다. one "과"two "는 서로 다른 viewcontroller (동일한 클래스에 의해 제어 됨)에 우리를 데려 간다. 그러나 레이블을 가진이 레이블은 사용자가 첫 번째보기에서 텍스트 필드에 넣은 값을 표시해야한다. 어떻게 그 순위 :탭 표시 줄 항목은 변수

NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults]; 
[prefs setInteger:[mytextfield.text intValue] forKey:@"integerKey"]; 

에서 하나 개의 클래스, 그리고 : 다른 클래스의

NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults]; 
NSInteger mynumber = [prefs integerForKey:@"integerKey"]; 

NSString *mystring = [[NSString alloc] initWithFormat:@"%i", mynumber]; 
mylabelonone.text = mystring; 
mylabelontwo.text = mystring; 

...

하지만 시뮬레이터에서 테스트 할 때 "하나"로 표시되는 버튼을 클릭하면 레이블이 비어 있습니다. 그렇다면 "2"로 이동하는 항목을 클릭하면 레이블이 정확한 숫자!

탭바 컨트롤러에서 "하나"와 "두"순서를 변경하려고 시도했지만 문제가 "두 개"로 발생하고 하나가 완벽합니다.

나는 일이있을 수있는 것의 어떤 생각을 가지고 있지 않습니다 ...

답변

1

테이블 뷰 컨트롤러는 흥미로운 방식으로 작동합니다. 탭간에 전환 할 때 viewWillAppear 또는 viewWillDisappear과 같은 방법.

그래서 게시 된 코드 행을 배치하는 위치가됩니다. 이 코드는 작동하지만 사용자가 다른 탭을 탭하기 전에 첫 번째 코드가 실행되고 코드의 두 번째 부분이 첫 번째 코드 이후에 실행되는 경우에만 해당 코드가 작동합니다.

– tabBarController:shouldSelectViewController:tabBarController:didSelectViewController:

다른 방법은 도면을 반입 한 후 처음에 정지하면서 제 관점에서 변수를 설정하는 것이다.

+0

이 작업을 수행하는 다른 방법을 시도했지만 작동하지 않았습니다. –

관련 문제