【问题标题】:Segue a ViewController over the top of SWRevealViewController side menu在 SWRevealViewController 侧边菜单的顶部设置一个 ViewController
【发布时间】:2016-06-04 12:49:42
【问题描述】:

我已经在我的应用程序中实现了 SWRevealViewController,以便为我的应用程序提供一个漂亮的侧边菜单。我的应用程序主(主)屏幕是TableViewController.swift - 这也是您可以访问侧边菜单的唯一位置。侧面菜单一切正常。这是一张图片来展示它的样子:

您可以在菜单中看到的 5 个选项是在 tableView 中创建的,我希望它们都链接到其他视图控制器。我目前已经使用他们在教程中为这个侧边菜单显示的方法实现了这一点,即创建reveal view controller push controller 的segue。这一切都有效。

问题

当您按下其中一个选项时,它会将新的视图控制器显示为sw_front,因此,我无法访问主(主)屏幕。例如,链接到第一个选项“我想看的电影”的 VC 只是一个纯绿色的 VC。下图显示了我按下该选项然后尝试返回后发生的情况:

所以你可以看到,出现在最前面的VC不再是我的主(主)屏幕了。

我想知道我可以设置它,所以当你按下侧边菜单中的一个选项时,它会在侧边菜单的顶部打开新的 VC,所以当你关闭那个 VC 时,它仍然显示侧面菜单打开,主(主)屏幕在前面。

我希望这是有道理的。请询问您是否需要查看我的任何代码。

【问题讨论】:

    标签: ios swift segue swrevealviewcontroller


    【解决方案1】:

    我设法找到了解决方案!

    1. 我首先创建了 5 个新的视图控制器(侧边菜单中的每个选项一个)

    2. 然后我通过创建一个“显示”转场将每个单元格链接到它的视图控制器。所以我的故事板现在看起来像这样:

    1. 我为每个 segue 创建了一个 segue 标识符。

    然后在我的sideMenu.swift 文件中,我添加了以下内容:

    1. 创建变量来存储segues的标识符。

      // Mark:- Sets the side menu segue identifiers
      let smOption_One = "toFilmsIWantToSee"
      let smOption_Two = "toSearchForAnyFilm"
      let smOption_Three = "toMeetTheTeam"
      let smOption_Four = "toContactUs"
      let smOption_Five = "toTermsOfUse"
      
    2. 然后我添加了didSelectRowAtIndexPath 方法,并为我的每个segue 添加了performSegueWithIdentifier

      func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
      
      self.performSegueWithIdentifier(smOption_One, sender: indexPath)
      self.performSegueWithIdentifier(smOption_Two, sender: indexPath)
      self.performSegueWithIdentifier(smOption_Three, sender: indexPath)
      self.performSegueWithIdentifier(smOption_Four, sender: indexPath)
      self.performSegueWithIdentifier(smOption_Five, sender: indexPath)
      
      }
      
    3. 最后,添加了prepareForSegue 方法。在这个方法中,我检查了每个标识符,然后转到destinationViewController

      override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject!) {
      
      if segue.identifier == smOption_One {
      
          segue.destinationViewController as! FilmsIWantToSeeViewController
      
      } else if segue.identifier == smOption_Two {
      
          segue.destinationViewController as! SearchForAnyFilmViewController
      
      } else if segue.identifier == smOption_Three {
      
          segue.destinationViewController as! MeetTheTeamViewController
      
      } else if segue.identifier == smOption_Four {
      
          segue.destinationViewController as! ContactUsViewController
      
      } else if segue.identifier == smOption_Five {
      
          segue.destinationViewController as! TermsOfUseViewController
      
      }
      
      }
      

    这完美地为正确的视图控制器创建了一个 segue,具体取决于我按下哪个选项,并将其显示在侧边菜单的顶部,所以当我关闭该视图控制器时,它仍然向我显示侧边菜单,因此让我回到我的主屏幕。

    不确定是否有更简单的方法可以做到这一点,但它确实可以满足我的需要。使用 Xcode 7.2 和 Swift 2 编写。

    【讨论】:

      猜你喜欢
      • 2021-09-16
      • 2017-04-08
      • 2013-11-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-11-21
      • 1970-01-01
      • 2015-02-04
      相关资源
      最近更新 更多