如何使用 Xib(不是 StoryBoards)在 SideMenu Controller 中设置 UINavigationController,以便在 Swift 中点击 Tableview 行时推送新的 ViewController 5
How to set UINavigationController in SideMenu Controller using Xib (Not StoryBoards) to push new ViewController when Tableview Row Tapped in Swift 5
我正在使用 XIB 文件并使用此库 https://github.com/Friend-LGA/LGSideMenuController 以编程方式制作一个 sideMenu 控制器。我做了两个函数来在我的项目中传播 sideMenu,如下所示`//MARK Configure 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 中创建)以推送到新的 viewcontroller 它显示半个新的 viewcontroller 上面的 sidemenu 大小与侧边菜单。我如何使用 pushViewController.Here 使用后退按钮获得全屏 viewcontroller 是我的行 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”上显示另一个 viewcontroller 屏幕,而不是使用这段代码使用推送 transition.Solved。
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)
}
我正在使用 XIB 文件并使用此库 https://github.com/Friend-LGA/LGSideMenuController 以编程方式制作一个 sideMenu 控制器。我做了两个函数来在我的项目中传播 sideMenu,如下所示`//MARK Configure 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 中创建)以推送到新的 viewcontroller 它显示半个新的 viewcontroller 上面的 sidemenu 大小与侧边菜单。我如何使用 pushViewController.Here 使用后退按钮获得全屏 viewcontroller 是我的行 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”上显示另一个 viewcontroller 屏幕,而不是使用这段代码使用推送 transition.Solved。
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)
}