从菜单中选择后推送视图控制器的正确方法是什么?

时间:2014-11-21 18:21:57

标签: swift uiviewcontroller menu storyboard segue

在我的应用程序中,我有一个“主页”屏幕,我可以从中显示一个汉堡包菜单(在Storyboard中编码为模态转换)。 菜单是UITableView,用户将在其中选择一行。菜单有一个委托方法,它在显示屏幕(我的“主页”屏幕)中调用以下功能

// Menu delegate method
func menuDidExit(menuVC:MenuVC) {
    self.dismissViewControllerAnimated(true, completion: {
        // After dismissal of menu, call the chosen option
        if let selectedOption = menuVC.menuSelection {
            self.performSegueWithIdentifier(menuVC.menuSelection?.rawValue, sender: self)
        }
    })
}

此功能将关闭菜单视图控制器,然后(一旦转换完成)​​,使用“performSegueWithIdentifier”命令,根据所选菜单选项显示第二个视图控制器。

我遇到的问题是,当菜单解除工作正常时(菜单优雅地滑出屏幕) - 下一个视图控制器的呈现没有动画 - 它只是在菜单被解除后出现在屏幕上。

我可以通过按钮/ segue调用所需的视图控制器,并且一切正常,但是当它是上面的完成块的一部分时,它无法为转换设置动画。这让我相信我的方法存在根本性的错误 - 因此问题是,在处理第一个视图控制器被解雇之后推送第二个视图控制器的正确方法是什么。

非常感谢任何建议

1 个答案:

答案 0 :(得分:0)

我认为你可以使用它:

override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
    self.dismiss(animated: true) { 
        //dismiss your menu here
    }
}

希望它可以帮到你。 如果不起作用,请告诉我。 感谢