여러보기가있는 앱이 있습니다. 나는 앱이 종료 될 때 사용자가 다른 뷰에 있더라도 항상 앱을 다시 열 때 "시작보기"를 표시하려고합니다.다시 실행하면 특정보기가 항상 표시됩니다.
답변
UIApplicationDelegate은 앱이 활성화되거나 포 그라운드로 들어올 때 발생하는 상황을 정의 할 수있는 장소를 제공합니다.
– applicationDidBecomeActive:
이 방법은 사용자의 응용 프로그램이 활성 상태로 비활성에서 이동 알려 호출됩니다
는 방법에서보세요. 이는 사용자 또는 시스템이 응용 프로그램을 시작했기 때문에 발생할 수 있습니다. 응용 프로그램은 일시적으로 응용 프로그램을 비활성 상태로 보낸 중단 (수신 전화 통화 또는 SMS 메시지 등)을 사용자가 무시하도록 선택하면 활성 상태로 되돌아 갈 수 있습니다.응용 프로그램이 비활성 상태 일 때 일시 중지되었거나 시작되지 않은 작업을 다시 시작하려면이 방법을 사용해야합니다. 예를 들어 타이머를 다시 시작하거나 OpenGL ES 프레임 속도를 조절할 수 있습니다. 응용 프로그램이 백그라운드에서 이전에 있었던 경우이를 사용하여 응용 프로그램의 사용자 인터페이스를 새로 고칠 수도 있습니다.
이 방법을 사용하면 앱이 처음 시작될 때와 앱이 백그라운드 상태에서 돌아 왔을 때 앱을 시작할 때 표시 할보기를 정의 할 수 있습니다.
다른 대안은 앱이 백그라운드 상태로 들어가는 것을 방지하는 것입니다. 즉, 앱이 항상 시작되어 사용자가 정의하는 초기 상태로 들어갈 수 있습니다. 앱 plist 파일의 "백그라운드에서 실행되지 않는 응용 프로그램"(UIApplicationExitsOnSuspend) 키를 "예"로 설정하면됩니다.
applicationWillEnterForeground:
로컬 파일에 앱의 상태를 저장합니다. 에서 applicationDidBecomeActive:
은 앱 상태를로드합니다.
희망이 도움이됩니다. 건배!
로컬 파일에 앱 상태를 저장하려면 어떻게해야합니까? 그리고 그것을로드? 감사. – Philip2905
화면 (예 : s1, s2, s3, s4, s5)에 대한 코드를 설정하고 파일에 쓸 수 있습니다. 또한 필요한 것을 저장할 수 있습니다. 이를 구현하는 가장 쉬운 방법은 전역 변수 NSString * currentScreen을 사용하는 것입니다. s3에서 viewDidAppear을 사용하면 currentScreen을 "s3"으로 설정합니다. 앱의 상태를 저장하는 것은 SDK 또는 다른 메소드의 메소드로 수행되지 않습니다. 처음부터 다시해야합니다. – George
나는 생각한다. 나는 시도 할 것이다. 고맙습니다! – Philip2905
전 검색했지만 이전보기에서 시작보기로 프로그래밍 방식으로 전환하기위한 코드를 찾을 수 없습니다. 나는 시도했다 [self popToRootViewControllerAnimated : NO]; 그러나 운동하지 않았다. 코드를 알고 있다면 여기에 게시하십시오. 감사. – Philip2905
'popToRootViewControllerAnimated'를 내비게이션 컨트롤러에 보내야합니다. 루트 뷰 컨트롤러가 무엇인지에 따라'[[self.window.rootViewController navigationController] popToRootViewControllerAnimated : NO];'또는 [self.window.rootViewController popToRootViewControllerAnimated : NO];를 시도하십시오. – sergio
그렇지 않으면 내가 제안하는 대안을 시도해 볼 수 있습니다. 앱이 항상 초기보기부터 시작됩니다 ... – sergio