빠른 작업으로 응용 프로그램을 시작할 때 빠른 동작을 수행하는 방법을 알아내는 데 어려움을 겪고 있습니다.빠른 동작으로 응용 프로그램 실행을 처리하는 올바른 방법
그러나 빠른 동작으로 앱이 백그라운드에 다시 실행되면 내 빠른 동작이 작동합니다.
빠른 실행에서 곧바로 앱을 시작하려고하면 앱 아이콘을 두드리는 것만으로 앱이 시작됩니다 (즉 아무 것도하지 않음).
다음은 내 App Delegate의 코드입니다.
에서 didFinishLaunchingWithOptions :
UIApplicationShortcutItem *shortcut = launchOptions[UIApplicationLaunchOptionsShortcutItemKey];
if(shortcut != nil){
performShortcutDelegate = NO;
[self performQuickAction: shortcut fromLaunch:YES];
}
불리는 방법
-(BOOL) performQuickAction: (UIApplicationShortcutItem *)shortcutItem fromLaunch:(BOOL)launchedFromInactive {
NSMutableArray *meetings = [self.fetchedResultController.fetchedObjects mutableCopy];
[meetings removeObjectAtIndex:0];
unsigned long count = meetings.count;
BOOL quickActionHandled = NO;
if(count > 0){
MainViewController *mainVC = (MainViewController *)self.window.rootViewController;
if(launchedFromInactive){
mainVC.shortcut = shortcutItem;
}
else{
UINavigationController *childNav;
MeetingViewController *meetingVC;
for(int i = 0; i < mainVC.childViewControllers.count; i++){
if([mainVC.childViewControllers[i] isKindOfClass: [UINavigationController class]]){
childNav = mainVC.childViewControllers[i];
meetingVC = childNav.childViewControllers[0];
break;
}
}
self.shortcutDelegate = meetingVC;
if ([shortcutItem.type isEqual: @"Meeting"]){
NSNumber *index = [shortcutItem.userInfo objectForKey:@"Index"];
[self.shortcutDelegate switchToCorrectPageWithIndex: index launchedFromInactive:NO];
quickActionHandled = YES;
}
}
}
수행 될 필요가있는 유일한 동작 인 것을합니다 (meetingVC 내부에 매립된다) 내 페이지 뷰 컨트롤러해야 선택한 바로 가기와 관련하여 특정 페이지로 전환하십시오.
배경에서 앱을 다시 열지 않고 실행하기 위해 바로 가기를 사용하지 않는 이유는 무엇입니까?
이전에이 문제를 다시 접했을 때 같은 문제가 다시 발생했습니다. 빠른 동작으로 앱을 시작할 때 루트보기 컨트롤러가 아직 생성되지 않았으므로 메소드를 호출 할 수 없기 때문입니다 그 위에. 나는 슬프게도 해결책이 없다. – SimonBarker
내 프로그램에 대한 해결책을 찾았습니다! 바라기를이 방법을 찾는 다른 사람들에게도 적용 할 수 있습니다. – iOShepherd