2016-06-15 2 views
0

У меня есть жест на UITableView создано как такПочему мои жесты не переконфигурируются при входе в мое приложение через URL-адрес ярлыка (открыть pdf-файл в моем приложении)?

//tableView:cellForRowAtIndexPath: 
UILongPressGestureRecognizer *lpgr = [[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(longPress:)]; 
[cell addGestureRecognizer:lpgr]; 

в моем приложении делегата, я обработка ярлыков, как так

- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation { 
if (url == nil) { 
    NSLog(@"Shortcut: None"); 
    return NO; 
} 
NSLog(@"Shortcut: %@", [url absoluteString]); 

    NSURLComponents *urlC = [[NSURLComponents alloc] initWithURL:url resolvingAgainstBaseURL:NO]; 
    if ([urlC.scheme isEqualToString:@"file"]) { //file:///private/var/mobile/...../Documents/Inbox/file.pdf 

     FSCategoriesTVC *FSCategoriesTVC = [_window.rootViewController.storyboard instantiateViewControllerWithIdentifier:@"FSCategoriesTVC"]; 
     FSCategoriesTVC.isUploadingFile = YES; 
     FSCategoriesTVC.fileToUpload = url; 
     FSCategoriesTVC.navigationItem.prompt = @"Select project to add files to"; 

     UINavigationController *navController = [[UINavigationController alloc] init]; 
     [navController setViewControllers:@[FSCategoriesTVC] animated:NO]; 

     if(_window.rootViewController.presentedViewController != nil) { 
      [_window.rootViewController dismissViewControllerAnimated:NO completion:^{ }]; 
     } 
     [_window.rootViewController presentViewController:navController animated:NO completion:^{}]; 
     return YES; 
    } 
return NO; 
} 

то, что я делаю открытие .pdf файлов мое приложение и загрузить их на S3, чтобы посмотреть позже. однако, когда приложение запускается таким образом, мои жесты не распознаются

e: Я заменяю жест фреймворком под названием BAMContextualMenu, надеясь, что это решит мою проблему, нет. Та же проблема, что жест не распознаются при запуске из контекстного

ответ

0
  1. Попробуйте вид отладчик, чтобы увидеть, если ваш вид иерархии отличается при открытии с URL
  2. Try обработки URL в application:willFinishLaunchingWithOptions: вместо этого, потому что это application:openURL:sourceApplication:annotation: осуждается. Вы можете получить URL-адрес из словаря параметров, используя ключ UIApplicationLaunchOptionsURLKey. Таким образом, вы будете инициализировать свою иерархию представлений с помощью того же кода, есть ли URL-адрес, который по моему опыту может быть более надежным. Вы также можете реализовать application:openURL:options:.
+0

Единственное, что я вижу, - это «UITransitionView», http://imgur.com/a/VDZcu – lizzy81

+0

Я не вижу никаких очевидных красных флагов. Я добавил второе предложение. –

+0

Я вижу второе предложение сейчас, я понятия не имел 'application: openURL: sourceApplication: annotation:' был устаревшим, поскольку я полагаюсь на xcode, кричащий на меня. плохо дать это попробовать – lizzy81