iOS-用于菜单的TableViewController e SWRevealViewController

iOS-用于菜单的TableViewController e SWRevealViewController,ios,xcode,uitableview,swrevealviewcontroller,Ios,Xcode,Uitableview,Swrevealviewcontroller,在我的tableview中,我在导航控制器内插入了一个按钮项,如图所示,在压力下必须打开一个侧菜单 问题是我没有打开任何菜单! 我关注以下视频: tableview似乎无法识别按钮压力。。我能做什么?revealViewController为零的最方便的原因是您没有在stroyboard中正确连接segues 如果TabViewController不是故事板入口点,则在AppDelegate中添加此代码。 AppDelegate: if (userDefaults.object(forKey:

在我的tableview中,我在导航控制器内插入了一个按钮项,如图所示,在压力下必须打开一个侧菜单

问题是我没有打开任何菜单! 我关注以下视频:


tableview似乎无法识别按钮压力。。我能做什么?

revealViewController为零的最方便的原因是您没有在stroyboard中正确连接segues

如果TabViewController不是故事板入口点,则在AppDelegate中添加此代码。 AppDelegate:

if (userDefaults.object(forKey:"user") != nil) {
    let storyboard = UIStoryboard(name: "Main", bundle: nil)
    self.window?.rootViewController = storyboard.instantiateViewController(withIdentifier: "SWRevealViewController")
    self.window?.makeKeyAndVisible()
}
if (userDefaults.object(forKey:"user") != nil) {
let storyboard = UIStoryboard(name: "Main", bundle: nil)
self.window?.rootViewController = storyboard.instantiateViewController(withIdentifier: "SWRevealViewController")
self.window?.makeKeyAndVisible()
}
或者,如果要为其他viewController显示TabViewController,请使用此代码显示TabViewController

let storyboard = UIStoryboard(name: "Main", bundle: nil)
let main = storyboard.instantiateViewController(withIdentifier: "SWRevealViewController") //SWRevealViewController
self.present(main, animated: true, completion: nil)
更新:

  • 您需要将loginViewController和TabViewController分开,如下图所示。(两者之间没有分隔)
  • 添加SWRevealViewController和菜单屏幕tableview
  • 接下来,控制从SWRevealViewController到菜单视图控制器的拖动。释放按钮后,您将看到一个用于序列选择的上下文菜单。在这种情况下,选择“显示视图控制器设置顺序”。这定义了一个自定义segue“SWRevealViewControllerSetSegue”。选择segue并在Identity inspector下将其标识符更改为“sw_rear”。通过设置标识符,您可以告诉SWRevealViewController菜单视图控制器是后视图控制器。在这种情况下,侧栏菜单将隐藏在内容视图控制器后面
  • 接下来,重复相同的过程,将SWRevealViewController与新闻视图控制器的导航控制器连接起来。再次,在出现提示时选择“显示视图控制器设置顺序”。将segue的标识符设置为“sw_front”。这会告诉SWRevealViewController导航控制器是前视图控制器
  • 同tableview控制器到主视图控制器一样,只需选择segue作为显示视图控制器推送
  • 在所有选项卡中添加此代码

    if (self.revealViewController() != nil) {
    menuButton.target = self.revealViewController()
    menuButton.action =  #selector(SWRevealViewController.revealToggle(_:))
    self.view.addGestureRecognizer(revealViewController().panGestureRecognizer())
    }
    
  • 登录后跳转到TabViewController使用此代码

    let storyboard = UIStoryboard(name: "Main", bundle: nil)
    let main = storyboard.instantiateViewController(withIdentifier: "SWRevealViewController") //SWRevealViewController
    self.present(main, animated: true, completion: nil)
    
  • 登录后:要跳过登录视图,请在AppDelegate中添加此签入: AppDelegate:

    if (userDefaults.object(forKey:"user") != nil) {
        let storyboard = UIStoryboard(name: "Main", bundle: nil)
        self.window?.rootViewController = storyboard.instantiateViewController(withIdentifier: "SWRevealViewController")
        self.window?.makeKeyAndVisible()
    }
    
    if (userDefaults.object(forKey:"user") != nil) {
    let storyboard = UIStoryboard(name: "Main", bundle: nil)
    self.window?.rootViewController = storyboard.instantiateViewController(withIdentifier: "SWRevealViewController")
    self.window?.makeKeyAndVisible()
    }
    

  • 你能分享你的代码吗?显示你的按钮动作code@ShabbirAhmad是的,等一下加上密码@user2324946@ShabbirAhmad我不知道该做什么,该改变什么:(@Taprolano你如何呈现TabView?@Taprolano你做错了兄弟。1.登录屏幕,然后是TabView 2.你需要创建如youtube视频所示的RevealViewController和菜单屏幕。@Taprolano共享视频链接很好。你只需遵循每一步或检查我的更新部分。这将帮助你实现你的目标。