내 응용 프로그램에서 세부보기 컨트롤러에 숨겨진 뒤로 단추가있는 분할보기를 사용하고 있으며 일부 백그라운드 작업을 수행하고 있습니다. 백그라운드 작업을 수행 한 후 앱이 백그라운드에서 포 그라운드로 이동하면 숨겨진 뒤로 버튼이 탐색 모음에 나타납니다. 이것은 우리가 백그라운드 작업을 마친 후 포 그라운드로 올 때만 발생하며 포 그라운드로 오면 여전히 백그라운드 작업이 진행 중이면 나타나지 않습니다. 숨겨진 뒤로 버튼이 숨겨져 있는데 왜 가끔 나타나는지 이해가 안 돼요. 해당 버튼을 탭하면 아무 일도 일어나지 않지만 여전히 나타납니다. 이 문제를 해결하도록 도와주세요.
오른쪽 패널의 RootView에서 다음과 같이 뒤로 버튼을 숨 깁니다.
- (void) viewWillAppear
{
self.navigationController.navigationItem.hidesBackButton = YES;
self.navigationController.navigationItem.leftBarButtonItem = nil;
}
didEnterBackground에서 타이머로 백그라운드 작업 시작
UIApplication* app = [UIApplication sharedApplication];
backgroundTask = [app beginBackgroundTaskWithExpirationHandler:^{
[app endBackgroundTask:backgroundTask];
backgroundTask = UIBackgroundTaskInvalid;
}];
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
NSTimer* t = [NSTimer scheduledTimerWithTimeInterval:INITIAL_BACKGROUND_TIME_LIMIT target:self selector:@selector(pushPullServer) userInfo:nil repeats:NO];
[[NSRunLoop currentRunLoop] addTimer:t forMode:NSDefaultRunLoopMode];
[[NSRunLoop currentRunLoop] run];
});
백그라운드에서 온 후 appDidBecomeActive에서
- (void) appDidBecomeActive
{
self.splitViewController.viewControllers = [NSArray arrayWithObjects:self.tabBar, detailNavigation, nil];
self.splitViewController.delegate = self;
self.window.rootViewController = self.splitViewController;
}
hidesBackButton
뷰 컨트롤러 전환 ( viewWillAppear
해당 프로세스의 일부) 중에 속성을 설정할 때 문제가되는 것 같습니다 . iOS6에서이 문제를 알아 차리지 못했기 때문에 iOS7이 전환 및 렌더링을 처리하는 방식과 관련이 있다고 생각합니다.
나를위한 해결책 hidesBackButton
은 초기화시 올바른 상태를 유지 하는 것이 었습니다. 따라서에서 속성 값 - (id)init
또는 일부 변형 을 설정해야합니다 .
이것이 가능하지 않은 경우, 내가 할 수있는 최선은 상태를 설정 viewDidAppear
하는 대신 viewWillAppear
이 너무 사용자에 대한 부조화 아니에요 그래서 애니메이션 있어요 보장.
예를 들면 :
[self.navigationItem setHidesBackButton:YES animated:YES];
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다