我已经将SWRevealViewController实现到我的应用程序中,为我的应用程序提供了一个不错的侧边菜单。我应用程序的主(主)屏幕是TableViewController.swift
- 这也是您可以访问侧边菜单的唯一地方。侧面菜单都很完美。这是一张图片来展示它的样子:
您可以在菜单中看到的5个选项是在tableView
中创建的,我希望它们都链接到其他视图控制器。我目前使用他们在本侧面菜单的教程中显示的方法实现了这一点,即创建reveal view controller push controller
的segue。一切正常。
问题
当您按下其中一个选项时,它会将新视图控制器显示为sw_front
,因此,我无法访问主(主)屏幕。例如,VC链接到第一个选项' Films我想看到'只是一个普通的绿色VC。下图显示了在我按下该选项然后尝试返回后发生的情况:
所以你可以看到,前面出现的VC不再是我的主(主)屏幕了。
我想知道在那里我可以设置它,所以当你按侧面菜单中的一个选项时,它会打开侧面菜单顶部的新VC,所以当你关闭它时VC,它仍然显示侧面菜单打开,前面有Main(主页)屏幕。
我希望这是有道理的。请询问您是否需要查看我的任何代码。
答案 0 :(得分:3)
我设法找到了解决方案!
我首先创建了5个新的视图控制器(侧面菜单中的每个选项都有一个)
然后,我通过创建“显示”segue将每个单元格链接到它的视图控制器。所以我的故事板现在看起来像这样:
然后在我的sideMenu.swift
文件中添加了以下内容:
创建变量以存储segue的标识符。
// 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"
然后我添加了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)
}
最后,添加了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,具体取决于我按下的选项,并将其显示在侧面菜单的顶部,所以当我关闭该视图控制器时,它仍然显示侧面菜单,因此允许我回到主屏幕。
不确定是否有更简单的方法可以做到这一点,但它确实可以解决我需要它的方式。使用Swift 2在Xcode 7.2中编写。