如何关闭segue ios8

Posted

技术标签:

【中文标题】如何关闭segue ios8【英文标题】:How to dismiss segue ios8 【发布时间】:2015-05-08 12:16:18 【问题描述】:

我对segue不太熟悉。我第一次使用它。

[self performSegueWithIdentifier:@"LoginSegue" sender:nil];

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender

    id destinationViewController = segue.destinationViewController;

    if ([destinationViewController isKindOfClass:[MFSideMenuContainerViewController class]])
    
        UIStoryboard *storyboard = [UIStoryboard storyboardWithName:Main bundle:[NSBundle mainBundle]];

        UINavigationController *navigationController = [storyboard instantiateViewControllerWithIdentifier:NavigationController];
        MFSideMenuContainerViewController *container = (MFSideMenuContainerViewController *)destinationViewController;
        UIViewController *leftSideMenuViewController = [storyboard instantiateViewControllerWithIdentifier:LeftSideMenuIdentifier];

        [container setLeftMenuViewController:leftSideMenuViewController];
        [container setCenterViewController:navigationController];
    

我的问题是,当我尝试使用以下方法在 SideMenu 中的 LOGOUT 按钮上将其关闭时,

 [self dismissViewControllerAnimated:YES completion:nil];

什么都没有发生。不知道怎么解除。 任何人都可以解决这个问题吗? 提前致谢!

【问题讨论】:

寻找放松转场。 【参考方案1】:

根据documentationdismissViewControllerAnimated

关闭由模态呈现的视图控制器 接收器。

所以这适用于模态呈现的控制器,对于导航堆栈,请改用unwind segues。

【讨论】:

我的 ViewController 以模态方式呈现。仍然无法正常工作。我也不知道为什么?【参考方案2】:
[self dismissViewControllerAnimated:YES completion:nil];

当视图控制器存在时,上述语句会关闭视图控制器。

如果您使用“PUSH”或“SHOW”,那么您的视图控制器正在推送到导航堆栈。那么在这种情况下,您必须从导航堆栈中弹出该视图控制器。

试试下面的代码

[self.navigationController popViewController:yourViewController animated:YES];

【讨论】:

我正在使用“MODAL”,我的视图控制器显示在登录按钮上。所以 [self dismissViewControllerAnimated:YES completion:nil];必须工作。但这不是:(

以上是关于如何关闭segue ios8的主要内容,如果未能解决你的问题,请参考以下文章

在 iOS 9 上关闭由 segue 创建的 Popover

如何使用 uistepper 乘以 segue 数据传输中的值 [关闭]

在 Xcode 中执行 segue 后如何关闭视图控制器?

我如何使用推送方法(无 segue)将数据从一个 vc 传递到另一个 vc - 已关闭

segue 关闭时执行操作

没有segue的自定义关闭过渡