2016-05-25 5 views
1

私は、テーブルビューのitensのリストであるappを持っており、テーブルビューのすべてのアイテムに詳細ビューコントローラを表示します。また、MMDrawerController(ルートビューコントローラ)をストーリーボードのサイドメニューとして実装しています。 私は、私のアプリケーションを深くリンクし、それを処理するためにApp DelegateからアプリケーションオープンURLソースアプリケーションアノテーションメソッドを使用しています。だから、私はMMDrawerControllerを使用してこのメ​​ソッドから詳細ビューコントローラをプッシュしたいと私はいくつかの問題を抱えています。 一部のコードをご覧ください:MMDrawerController:pushcontrolフォームアプリケーションopen URL

- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation { 

     UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil]; 
     DetalheRestauranteViewController *vc = [storyboard instantiateViewControllerWithIdentifier:@"detalheRest"]; 

     MMDrawerController* drawerController = (MMDrawerController *)self.window.rootViewController; 
     // If I use this nothing happens   
     [drawerController.centerViewController.navigationController pushViewController:vc animated:YES]; 

     // If I use this nothing happens  
     [((MMDrawerController *)self.window.rootViewController).centerViewController.navigationController pushViewController:vc animated:YES]; 

    // If I use this I got the unrecognized selector error  
    [(UINavigationController*)self.window.rootViewController pushViewController:vc animated:NO]; 

    return YES; 
} 

誰かがこれを手伝ってくれますか?

+0

をあなたは、URL、sourceApplicationと注釈をログインしてくださいすることができますか? – Alok

+0

私は正確に何を記録しますか? –

答えて

0

ディープリンクと新しいiOS9メニューのショートカットでは、UIコンポーネントを表示または操作するのに小さな遅延がしばしば必要であることがわかりました。

すべてのUI/MMDrawerコードを独自のメソッドに移動しようとします。次に、あなたのアプリケーションデリゲートでopenURLが呼び出されると、遅れて新しいメソッドを呼び出します。

そうにObjCではこのようなものになります。

[self performSelector:@selector(showDetailView) withObject:nil afterDelay:0.3]; 
+0

私はそれをしましたが、何も変わりませんでした。 –

+0

ルートビューコントローラが別のクラスである可能性はありますか? NSLog [self.window.rootViewControllerクラス]を使用して、実際に作業しているものを確認してください。 –

+0

ルートビューコントローラはMMDrawerControllerです。私はちょうどそれをテストした。 –

関連する問題