我有CenterTableViewController
,左,右
中心是应用程序启动时的主视图,左侧和右侧是侧面菜单,在导航控制器上滑动或单击时打开。Buttons
左侧和右侧TableViewControllers
都有自己的项目数,右侧有10项左右。当点击其中一项时,需要弹出特定的ExampleViewController
。ViewController
出现没有导航控制器(我需要它),在那个导航控制器中我需要一个后退按钮,它会把我送回CenterTableViewController
。
到目前为止,我到达了RightTableViewController
,在它的班级女巫被命名为相同,我有这个方法
override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
switch (indexPath.row){
case 0:
break;
case 1:
break;
case 2:
break;
case 3:
break;
case 4:
break;
case 5:
let VC = self.storyboard?.instantiateViewControllerWithIdentifier("Kurs_Evra") as! KursEvraViewController
self.navigationController?.pushViewController(VC, animated: true)
break;
case 6:
break;
case 7:
break;
case 8:
break;
case 9:
break;
default:
println("JBG")
}
}
在案例5中,它会打开我需要的ViewController
,但会在RightTableViewController
而不是中心(因为“自我”部分)打开。
此外,当它打开时,如何在刚刚打开的ViewController
上创建导航控制器和后退按钮?
答案 0 :(得分:0)
如果您的中央视图控制器有导航控制器,则使用该控制器进行导航。例如,在右侧导航控制器中,不是按下视图控制器,而是触发通知以导航到该页面。 然后在您的中心控制器中收听通知并从那里进行导航。
这是你应该做的:
在案例5的switch语句中,将代码更改为:NSNotificationCenter.defaultCenter()。postNotificationName(" MenuItemNotification",object:" Kurs_Evra“)
在viewDidLoad方法的CenterViewController中,添加以下内容:
NSNotificationCenter.defaultCenter().addObserverForName("MenuItemNotification", object: nil, queue: NSOperationQueue.mainQueue()) { [weak self] notif in
if let strongSelf = self {
if let segueIdentifier = notif.object as? String {
strongSelf.performSegueWithIdentifier(segueIdentifier, sender: nil)
}
}
}
在上面的代码中,我假设您有一个名为Kurs_Evra的segue设置,而不仅仅是故事板ID。如果您不想使用segue,请使用案例5中的代码
答案 1 :(得分:0)
这不是那么难。
转到右侧或左侧菜单,在类create layer didSelectRowAtIndex路径中,并使用上面的switch语句。
然后,如果发布了您需要的代码,这就是您在导航堆栈和主ViewController上发布新故事板的方式
让Example = self.storyboard?.instantiateViewControllerWithIdentifier(“ExampleViewController”)为! ExampleViewController
让navController = UINavigationController(rootViewController:Example)
最后......
self.presentViewController(navController,animated:true,completion:nil)
使用“present”将打开您创建的新控制器,在本例中为ExampleViewController,它将首先出现在新的导航堆栈中。如果您希望关闭或模拟后退按钮,只需将操作连接到按钮并调用:
self.dismissViewController(navController,animated:true,completion:nil)