2010-07-31 4 views
1

iOS4에서 멀티 태스킹을 사용하면 홈 버튼이 앱을 배경으로두고, 포어 그라운드으로 돌아 왔을 때보기 컨트롤러를 '새로 고침'하여 (따라서 viewWillAppear가 호출되기를 바랍니다.) 나는이 일을해야한다고 생각 응용 프로그램의 위임에 넣고하지만 아무것도 iOS4에서 앱 위임자 및보기 컨트롤러

- (void)applicationDidFinishLaunching:(UIApplication *)application {  

    // 
    [window addSubview:viewController.view]; 
    [window makeKeyAndVisible]; 
} 


- (void)applicationWillEnterForeground:(UIApplication *)application { 
    [viewController.view reloadInputViews]; 
} 

사람이 이미 보여주는 경우 새로 고침/'실행'에 뷰 컨트롤러를 강제로 도와 줄 수

발생하지?

+0

viewController를 인스턴스화하고 reloadInputViewsCode를 게시하는 코드를 게시하십시오. willEnterForeground는 앱이 일시 중지 된 상태에서만 호출됩니다. CPU가 메모리 또는 기타 이유로 언제든지 일시 중지 된 응용 프로그램을 닫을 수 있습니다. 이 경우 applicationDidFinishLaunching이 호출됩니다. – RunLoop

+0

안녕하세요. 루프를 실행하고 요청을 기록한 다음 위에 추가하십시오. 앱에서 페이스트 보드를 읽고 뷰에서 데이터를 업데이트합니다. 사용자는 앱에서 나와 새로운 데이터를 마분지에 복사 할 수 있습니다. 앱에 다시 들어가면보기를 새로 고침해야합니다. 이것은 viewWillAppear에서 실행되며 iOS3에서 잘 작동합니다. 이제 applicationWillEnterForeground가 iOS4에서 호출됩니다. 그러나 뷰 컨트롤러에 새로 고침을 지시하고 viewWillAppear을 실행하도록 지시하려면 어떻게해야합니까? – munchine

+0

reloadInputViews에 대한 코드를 보지 않으면 어렵지만 아래에서 내 대답을 참조하십시오. – RunLoop

답변

1

예를 들어 viewWillAppear을 명시 적으로 호출 할 수 있습니다.

- (void)applicationWillEnterForeground:(UIApplication *)application { 
    [viewController.view reloadInputViews]; 

    [viewController viewWillAppear]; 
} 
+0

정말 멋지 네. 네가 할 수 있다는 것도 모르겠다. 그것을 테스트하고 그것을 (시뮬레이터에서 장치에 다른 문제가 있지만, 나는 그것이 관련 있다고 생각하지 않습니다). 다른 독자를 위해 나는 여기에서 제안 된 일을 사용하려고했다. http://stackoverflow.com/questions/3187642/ios4-removing-app-from-memory-via-code. 하지만 런 루프 (Run Loop)와 함께 할 것입니다. – munchine