触摸按钮时无法在滑出菜单中推动视图控制器

Posted

技术标签:

【中文标题】触摸按钮时无法在滑出菜单中推动视图控制器【英文标题】:can't push viewcontroller in slide out menu when touch button 【发布时间】:2016-06-06 06:28:20 【问题描述】:

我使用KYDrawercontroller 滑出菜单我编写代码以在 uitableview 中触摸按钮时推送 viewcontroller 但它不推送 这是我的代码

@IBAction func m01(sender: AnyObject) 
    let mainnav = self.storyboard!.instantiateViewControllerWithIdentifier("m02") as! UINavigationController //maindrawer
    let mainnav2 = self.storyboard!.instantiateViewControllerWithIdentifier("mm") as! page1ViewController //pagetopush
    mainnav.pushViewController(mainnav2, animated: true)


在我的项目中查看https://github.com/salution/slide

【问题讨论】:

您需要在 github 或某个地方上传示例项目以供人们检查代码。通常滑动菜单代码需要在各个地方大量调试。 好的,等我上传 github.com/salution/slide 这是我的项目github 你使用的是 xcode 7.2 吗? 不,我使用的是 xcode 7.3.1 【参考方案1】:

使用下面的代码替换您的代码

@IBAction func m01(sender: AnyObject) 
    print("touched")
    let mainnav2 = self.storyboard!.instantiateViewControllerWithIdentifier("mm") as! page1ViewController
    let rootVC = UIApplication.sharedApplication().keyWindow?.rootViewController
    let childrenVC = rootVC?.childViewControllers
    let nc = childrenVC?.first as? UINavigationController
    if let DrawerTableViewController = navigationController?.parentViewController as? KYDrawerController
        DrawerTableViewController.setDrawerState(.Closed, animated: true)
    
    nc?.pushViewController(mainnav2, animated: true)


我更喜欢 UIViewControllerAnimatedTransitioning 协议来呈现你的 UI 效果

【讨论】:

感谢您的回答,但它不起作用我会发布我的项目 git 有问题 嗨,近藤康弘,我在 git 上看到了你的代码,看看我的回答 它没有工作它推入tableview而不是导航viewcontroller 我添加了一个快照。它推入导航控制器。 我知道表格视图中的视图发生了变化,但我想在主控制器中更改视图而不是在幻灯片菜单中,抱歉没有解释更多

以上是关于触摸按钮时无法在滑出菜单中推动视图控制器的主要内容,如果未能解决你的问题,请参考以下文章

在发送者视图控制器被解雇后执行 segue

在导航控制器中实现滑出菜单时在哪里以及如何设置协议委托?

iOS 在处理触摸事件之前执行操作

如何根据滑出菜单导航到不同的视图控制器

如何防止用户从滑出设置菜单中连续两次调用同一个视图控制器?

通过点击带有协议的滑出菜单过滤 UITableView 提要