Swift ENSideMenu从UITableViewController导航到DetailsViewController时,它不会再次打开
情景: 我有(TableViewController)的MainViewController、TableViewController和DetailsViewController 我正在使用开源库获得滑动菜单功能,教程可以在这里找到:滑动菜单与 当我将本教程应用于我的项目时,我可以很容易地获得我想要的滑动菜单,您可以从 当我点击第二个视图时,一个TableViewController会显示列表数据,在这里,当我选择一行时,它会导航到details View controller,当我从details View controller返回TableViewController时,问题就开始了。滑动菜单不会再次打开 以下是我的TableViewController didSelectRowAtIndexPath代码:Swift ENSideMenu从UITableViewController导航到DetailsViewController时,它不会再次打开,swift,uitableview,slidingmenu,detailsview,navigationcontroller,Swift,Uitableview,Slidingmenu,Detailsview,Navigationcontroller,情景: 我有(TableViewController)的MainViewController、TableViewController和DetailsViewController 我正在使用开源库获得滑动菜单功能,教程可以在这里找到:滑动菜单与 当我将本教程应用于我的项目时,我可以很容易地获得我想要的滑动菜单,您可以从 当我点击第二个视图时,一个TableViewController会显示列表数据,在这里,当我选择一行时,它会导航到details View controller,当我从detail
switch (indexPath.section) {
case 0:
if (self.myInvoicesUnPaid.isEmpty){
self.displayAlertMessage("Ödenmemiş faturanız bulunmamaktadır.")
} else if (!self.myInvoicesUnPaid.isEmpty){
// Get Cell Label
let indexPath = tableView.indexPathForSelectedRow;
//let currentCell = tableView.cellForRowAtIndexPath(indexPath!) as UITableViewCell!;
let storyboard = UIStoryboard(name: "Main", bundle: nil)
let viewController = storyboard.instantiateViewControllerWithIdentifier("viewControllerIdentifer") as! invoiceDetailsViewController
viewController.passedValue = self.myUnpaidInvoicesDetails[(indexPath?.row)!]
viewController.isPaid = false
self.presentViewController(viewController, animated: true , completion: nil)
}
break
case 1:
// Get Cell Label
let indexPath = tableView.indexPathForSelectedRow;
let storyboard = UIStoryboard(name: "Main", bundle: nil)
let viewController = storyboard.instantiateViewControllerWithIdentifier("viewControllerIdentifer") as! invoiceDetailsViewController
viewController.passedValue = self.myPaidInvoicesDetails[(indexPath?.row)!]
viewController.isPaid = true
self.presentViewController(viewController, animated: true , completion: nil)
break
default: break
}
以下是导航回TableViewController时的detailsViewController代码
func backButtonPressed (sender:UIButton!){
let storyboard = UIStoryboard(name: "Main", bundle: nil)
let vc = storyboard.instantiateViewControllerWithIdentifier("InvoicesTableViewController") as! InvoicesTableViewController
vc.navigationController?.navigationBarHidden = false
vc.navigationController?.setNavigationBarHidden(false, animated:true)
performSegueWithIdentifier("backToMyInvoices", sender: self)
}
class SlideNavigationController: ENSideMenuNavigationController {
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
let storyBoard = UIStoryboard(name: "Main", bundle: nil)
let menu = storyBoard.instantiateViewControllerWithIdentifier("LeftSideViewController") as! LeftSideMenuTableView
sideMenu = ENSideMenu(sourceView: self.view, menuViewController: menu, menuPosition: ENSideMenuPosition.Left )
sideMenu?.menuWidth = 220
view.bringSubviewToFront(navigationBar)
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
我的最后一段代码表示来自EnsideNunavigationController的教程代码
func backButtonPressed (sender:UIButton!){
let storyboard = UIStoryboard(name: "Main", bundle: nil)
let vc = storyboard.instantiateViewControllerWithIdentifier("InvoicesTableViewController") as! InvoicesTableViewController
vc.navigationController?.navigationBarHidden = false
vc.navigationController?.setNavigationBarHidden(false, animated:true)
performSegueWithIdentifier("backToMyInvoices", sender: self)
}
class SlideNavigationController: ENSideMenuNavigationController {
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
let storyBoard = UIStoryboard(name: "Main", bundle: nil)
let menu = storyBoard.instantiateViewControllerWithIdentifier("LeftSideViewController") as! LeftSideMenuTableView
sideMenu = ENSideMenu(sourceView: self.view, menuViewController: menu, menuPosition: ENSideMenuPosition.Left )
sideMenu?.menuWidth = 220
view.bringSubviewToFront(navigationBar)
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
如蒙帮助,我们将不胜感激。。我使用这个滑动菜单已经有好几个星期了,我可以在整个应用程序中使用它。。即使在ViewController弹出之后 使用根视图控制器-MainViewController初始化ENNavigationViewController(您可以使用“示例”文件夹中的示例) 要显示下一个视图控制器时:
self.navigationController?.pushViewController(…)
或者使用示例中EnslideMenugation控制器上的方法:
setContentViewController(contentViewController:UIViewController)
我没有尝试你的答案对不起:)我已经按自己的方式做了