2017-09-22 14 views
0

私はアプリのクイックアクションを開始しています。それはうまく動作します。だから、AppDelegateに私はこのようなshortcutItemをチェックするとcompletionHandler関数を呼び出しています:Swift:クイックアクションでAppDelegateから特定のTabBarタブにアクセスする方法

func application(_ application: UIApplication, performActionFor shortcutItem: UIApplicationShortcutItem, completionHandler: @escaping (Bool) -> Void) { 

    completionHandler(handleShortcut(shortcutItem: shortcutItem)) 
} 

今私はhandleShortcut機能で特定のタブを開きたいのですが、これはまったく機能しません。それはstoryboardIDだとrootViewControllerとして追加して、私は、ビューとしてそれをロードしようとしたが、私はこれがすべてではうまくいく場合でも、わからないか、これはそれを行うための正しい方法である場合:

let storyBoard: UIStoryboard = UIStoryboard(name: "Main", bundle:nil) 
    let vc = storyBoard.instantiateViewController(withIdentifier: "tabBar") 
    self.window = UIWindow(frame: UIScreen.main.bounds) 
    self.window?.rootViewController = vc 
    self.window?.makeKeyAndVisible() 

しかし、明らかに私は、たとえば、tabBarController?.selectedIndex = 2を使用して3番目のタブにアクセスすることはできません。

私のtabBarControllerの別のタブにアクセスしてクイックアクションで表示するにはどうすればよいですか?

答えて

0

私は解決策になってきたが、私は、これはそれを行うための最善の方法であるかどうかわからないです:

if shortcutItem.type == "com.xxx.openHelp" { 
      let storyBoard: UIStoryboard = UIStoryboard(name: "Main", bundle:nil) 
      let vc = storyBoard.instantiateViewController(withIdentifier: "tabBar") 
      self.window = UIWindow(frame: UIScreen.main.bounds) 
      self.window?.rootViewController = vc 
      let myTabBar = self.window?.rootViewController as! UITabBarController 
      myTabBar.selectedIndex = 3 
      self.window?.makeKeyAndVisible() 
     } 
関連する問題