2015-10-08 109 views
1

這是我的故事板: enter image description here如何推動視圖 - 控制正確

簡述:

  • 我的應用程序開始與LaunchController
  • 模態賽格瑞顯示顯示視圖控制器
  • 這帶來菜單控制器和我的主導航控制器(ID 「NavController」;綠色導航欄)一起。這將創建一個幻燈片 菜單。 (基本代碼: appcoda.com/ios-programming-sidebar-navigation-menu/)
  • 我的主導航控制器顯示一個TableViewController。
  • 這一個有一個菜單按鈕(3條線),其使所述滑動菜單 可見
  • 加圖標willo推上一個視圖控制器(ID:「VC1」)。

我的問題: 我想爲我的應用程序設置快速操作。 此代碼幫助工作爲:

@available(iOS 9.0, *) 
    func handleShortcut(shortcutItem:UIApplicationShortcutItem) -> Bool { 

     var succeeded = false 

     let storyboard = UIStoryboard(name: "Main", bundle: nil) 
     let initialViewController = storyboard.instantiateViewControllerWithIdentifier("NavController") 
     self.window?.rootViewController = initialViewController 

     let navVC = self.window?.rootViewController as! UINavigationController 

     switch shortcutItem.type { 

     default: 
      navVC.pushViewController(storyboard.instantiateViewControllerWithIdentifier("VC1"), animated: false) 
      succeeded = true 
      break 
     } 
     return succeeded 

    } 

本規範設置NavController作爲初始控制器UND推到VC1。 這工作正常。

使用VC 1中的X圖標,我使用展開函數返回到TableView。 問題:如果我使用undwind函數並回退到tableview,我無法打開幻燈片菜單。觸摸菜單圖標不會產生任何反應。

問題可能在於,我使用顯示視圖控制器後面的快速操作啓動應用程序。

我該如何解決這個問題?

+0

嗨Ghost108,你現在有解決你的問題?你能分享一切嗎? – NoBody

回答

0

你嘗試使顯示視圖控制器您的應用程序的入口點和刪除發射控制器,因爲如果你只是想回到主視圖,你可能只是這樣做:

let storyboard = UIStoryboard(name: "Main", bundle: nil) 
    let controller = storyboard.instantiateInitialViewController() as UIViewController! 
    self.presentViewController(controller, animated: false, completion: nil) 

如果你不能解釋發射控制器的目的嗎?

+0

發射控制器無法刪除。你能以我的第一篇文章的例子向我展示解決方案的完整代碼嗎? – Ghost108