从 tableview 转到导航控制器前面的视图
Posted
技术标签:
【中文标题】从 tableview 转到导航控制器前面的视图【英文标题】:Segue from tableview to view preceded by navigation controller 【发布时间】:2016-02-05 19:29:53 【问题描述】:在我的项目中,我在 TableView 中有一个带有 3 个选项的幻灯片菜单。根据所选的选项,我想选择 ViewController1、ViewController2 或 ViewController3,所有这些选项都以导航控制器开头。
目前我在 Storyboard 中使用从 Prototype Cell 到 ViewController1 的 segue,以“segueid”作为标识符,因此所有选项都转到 ViewController1。
这是 file.swift 中准备转场的代码:
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?)
if segue.identifier == "segueid"
var DestViewController = segue.destinationViewController as! UINavigationController
当 XCode 只允许我从情节提要中的单元格设置一个 segue 时,问题就出现了,因此我无法指向 VC2 和 VC3。
是否有任何方法可以根据从 tableview 中选择的行来选择导航控制器前面的不同视图?
【问题讨论】:
【参考方案1】:您应该在视图控制器之间创建转场。
不要创建从单元到视图控制器的 segue。
然后,在您选择一个单元格后,您应该决定要调用哪个 segue。
【讨论】:
效果很好!现在我将下面粘贴的代码添加到 didSelectRowAtIndexPath 以选择正确的 segue。谢谢!performSegueWithIdentifier("segue_" + listOfOptions[indexPath.row].optionName, sender: nil)
【参考方案2】:
我想它会帮助你。从此链接下载源代码。它的 AKSwiftSlideMenu for ios AKSwiftSlideMenu
它在 BaseViewController 中有一个方法,您可以在其中设置从情节提要实例化的选定视图控制器作为 self.navigationController 的根视图控制器。
func slideMenuItemSelectedAtIndex(index: Int32)
let topViewController : UIViewController = self.navigationController!.topViewController!
print("View Controller is : \(topViewController) \n", terminator: "")
switch(index)
case 0:
print("Home\n", terminator: "")
break
case 1:
print("Play\n", terminator: "")
break
case 2:
print("Camera\n", terminator: "")
break
default:
print("default\n", terminator: "")
【讨论】:
以上是关于从 tableview 转到导航控制器前面的视图的主要内容,如果未能解决你的问题,请参考以下文章