如何设置UINavigationController在侧面菜单控制器使用Xib(不是故事板)推新的ViewControl



我正在使用XIB文件,并使用此库https://github.com/Friend-LGA/LGSideMenuController以编程方式制作一个sideMenu控制器。我做了两个函数在我的项目中传播sideMenu在这里'//MARK配置sideMenu

func moveToHomeController(){
let viewController = self.configureSideMenu(viewController: HomeController())

self.window?.rootViewController = viewController
self.window?.makeKeyAndVisible()
}
func configureSideMenu(viewController: UIViewController)-> UIViewController {

let contentController = SideMenuController(nibName: "SideMenuController", bundle: nil)
let sidemnuNavigationController = UINavigationController(rootViewController:contentController)

let navigationController = UINavigationController(rootViewController: viewController)

let sideMenuController = LGSideMenuController(rootViewController: navigationController,
leftViewController: sidemnuNavigationController,
rightViewController: nil)

sideMenuController.leftViewWidth = UIScreen.main.bounds.width - 100;
sideMenuController.leftViewPresentationStyle = .slideAbove
sideMenuController.leftViewAnimationDuration = 0.6
sideMenuController.isLeftViewSwipeGestureEnabled = false
sideMenuController.isRightViewSwipeGestureEnabled = false
return sideMenuController
}

我得到的SideMenu工作很好,现在我的问题是,每当我点击tableview行(在sideMenuController)推到新的视图控制器它显示一半新的视图控制器以上的SideMenu相同的大小作为SideMenu。我如何能得到全屏视图控制器与后退按钮使用pushViewController。下面是row select

的代码
`  func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
if indexPath.row == 0{
let viewController = EditProfileViewController(nibName:   "EditProfileViewController", bundle: nil)
self.navigationController?.pushViewController(viewController, animated: true)
self.sideMenuController?.hideLeftView()
print("row tapped")
}`

我检查并纠正了它,因为我试图在"LGSideMenuController"上呈现另一个视图控制器屏幕。而不是使用push转换。用这段代码解决了。

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {

if indexPath.row == 0{
let viewController =HomeController(nibName: "HomeController", bundle: nil)
self.sideMenuController?.hideLeftViewAnimated(sender:self)
self.sideMenuController?.rootViewController?.show(viewController, sender: self)
}

最新更新