簡體   English   中英

使用Swift中的SWRevealViewController手動segue

[英]Manual segue with SWRevealViewController in Swift

http://www.appcoda.com/tag/swrevealviewcontroller/上有一篇很棒的博客文章,其中介紹了設置SWRevealViewController,它是滑出側邊菜單的一個很好的組件( https://github.com/John- Lluch / SWRevealViewController

不幸的是,沒有關於如何執行手動segue的快速示例。

對故事板支持采取更清晰的方法。 現在不推薦使用SWRevealViewControllerSegue,您應該使用SWRevealViewControllerSegueSetController和SWRevealViewControllerSeguePushController。

我嘗試過以下方面:

let navigationController = self.window?.rootViewController as! SWRevealViewController;

let viewController = navigationController.storyboard?.instantiateViewControllerWithIdentifier("ImportFileSelect") as! ImportFileSelect

navigationController.showViewController(viewController, sender: self)

但這不起作用。 有任何想法嗎? 我已經在網上搜索了一些快速的例子,我的下一步是學習目標c!

為了工作,您需要執行以下步驟:

  • 您需要實例化SWRevealViewController,然后將其附加到根控制器。
  • 然后實例化目標控制器。
  • 然后創建一個導航控制器並將目標控制器設置為rootViewController
  • 最后用SWReveal推送導航控制器

     let storyboard = UIStoryboard(name: "Main", bundle: nil) let sw = storyboard.instantiateViewControllerWithIdentifier("SWRevealViewController") as! SWRevealViewController self.view.window?.rootViewController = sw let destinationController = self.storyboard?.instantiateViewControllerWithIdentifier("StoryboardID") as! NameOfViewController let navigationController = UINavigationController(rootViewController: destinationController) sw.pushFrontViewController(navigationController, animated: true) 

我有點進步了。 我可以加載一個新的視圖控制器,但無論如何它都沒有動畫。 單擊按鈕時執行此操作的代碼為:

let storyboard = UIStoryboard(name: "Main", bundle: nil)
let vc = storyboard.instantiateViewControllerWithIdentifier("TARGET_VIEW_CONTROLLER") as! UIViewController
var rvc:SWRevealViewController = self.revealViewController() as SWRevealViewController
rvc.pushFrontViewController(vc, animated: true)
  1. 下載SWRevealViewController項目的zip格式Github
  2. 將ZIP(SWRevealViewController文件夾)中的SWRevealViewController.m和SWRevealViewController.h文件拖到項目中,然后單擊“是”以顯示提示消息“是否要配置Objective-C橋接頭?”
  3. 看一下RevealControllerStoryboardExample2項目中的storyboard 使用此示例設計故事板。

這不是應該怎么做,但至少我找到了一種方法來做到這一點。

在TableViewController中你有slideOut菜單做類似的事情:

override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
        if(indexPath.row == <some position> ){
            let vc: AnyObject! = self.storyboard?.instantiateViewControllerWithIdentifier("YOUR_DESTINATION_IDENTIFIER")
            self.showViewController(vc as! SWRevealViewController, sender: vc)
        }

滿足條件的那個將使用默認動畫進行segue,而不像幻燈片菜單通常那樣。

在故事板中,執行一個普通的Reveal View Controller Push控制器,只要它不滿足條件,它就會正常退出滑出菜單

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM