2010-04-22 2 views
0

내가 메소드의 viewDidLoad에 화상을 표시 한 도면 주요 가지고uniimageview 뷰 후에 업데이트되지 tranistion

ballRect = CGRectMake (posBallX, 144 32.0f, 32.0f)를; theBall = [[UIImageView alloc] initWithFrame : ballRect]; [theBall setImage : [UIImage imageNamed : @ "ball.png"]]; [self.view addSubview : theBall]; [laPalla release];

분명히 posBallX의 값이 정의 된 다음 동일한 클래스에서 여러 번 사용자 지정 메서드 호출을 통해 업데이트됩니다.

theBall.frame = CGRectMake(posBallX, 144, 32, 32); 

내가 검색 (모든 작동하지만, 내가

[self presentModalViewController:viewTwo animated:YES]; 

과 다른보기로 이동

[self presentModalViewController:viewOne animated:YES]; 

로 돌아올 때 이미지의 viewDidLoad가 호출되는 방법 후 올바르게 표시됩니다 NSUserDefaults 값은 있지만 두 번째 방법은 더 이상 필요하지 않습니다. NSLog에서는 새로운 posBallX가 올바르게 업데이트되는 것을 볼 수 있지만 Image는 더 이상 표시되지 않습니다. posBallX의 값을 인쇄해야하는 Label에서도 마찬가지입니다.

뷰에서 viewOne로 돌아 가면 상황이 정상적으로 작동하지 않습니다. 두 가지 아이디어가 있습니다.

감사합니다.

답변

0

모달로 viewOne을 표시하는 대신 viewTwo에서 viewOne으로 다시 전환하려면 dismissModalViewControllerAnimated:을 사용해야합니다.

또한보기 컨트롤러의보기가 메모리로로드 된 후 viewDidLoad은 한 번만 호출됩니다. 보기가 화면에 다시 나타나면 작업을 수행하려면 viewWillAppear:에서 수행해야합니다.

이 두 가지 사항은 UIViewController 클래스 참조 및 View Controller 프로그래밍 가이드에서 설명합니다.

+0

고마워요! 오늘 나는 너의 해결책을 시험해보고 너에게 알렸다. 너는 매우 친절했다! 그러나 ... 나는 dismissModalViewControllerAnimated가 작동해야하는 이유와 내가 사용하지 않는 것이 궁금합니다. 나는 그 문서들을 다시 읽을 것이다. [self presentModalViewController : viewOne animated : YES]를 사용하여 첫 번째로 돌아가고 viewDidLoad가 다시 호출됩니다. 하지만 더 논리적 인 것은 viewWillAppear 메서드입니다 ... 내가 알려 드리겠습니다! 감사! –

+0

두 번째로 viewOne을 모달로 표시하면 뷰 계층 구조에 viewOne 복사본이 두 개 있습니다. View Controller를 두 번 할당하고 초기화했기 때문에'viewDidLoad'가 호출됩니다. 원래 viewOne로 돌아가려면 viewTwo를 닫을뿐입니다. –

관련 문제