如何关闭 segue ios8
How to dismiss segue ios8
我对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 中的注销按钮上关闭它时,
[self dismissViewControllerAnimated:YES completion:nil];
什么都没发生。不知道如何拒绝它。
任何人都可以解决这个问题吗?
提前致谢!
根据 documentation dismissViewControllerAnimated
Dismisses the view controller that was presented modally by the
receiver.
所以这适用于模态呈现的控制器,对于导航堆栈,请改用 unwind segues。
[self dismissViewControllerAnimated:YES completion:nil];
上面的语句在存在视图控制器时关闭视图控制器。
如果您正在使用 "PUSH" 或 "SHOW",那么您的视图控制器正在推送到导航堆栈。那么在那种情况下,您必须从导航堆栈中弹出该视图控制器。
试试下面的代码
[self.navigationController popViewController:yourViewController animated:YES];
我对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 中的注销按钮上关闭它时,
[self dismissViewControllerAnimated:YES completion:nil];
什么都没发生。不知道如何拒绝它。 任何人都可以解决这个问题吗? 提前致谢!
根据 documentation dismissViewControllerAnimated
Dismisses the view controller that was presented modally by the receiver.
所以这适用于模态呈现的控制器,对于导航堆栈,请改用 unwind segues。
[self dismissViewControllerAnimated:YES completion:nil];
上面的语句在存在视图控制器时关闭视图控制器。
如果您正在使用 "PUSH" 或 "SHOW",那么您的视图控制器正在推送到导航堆栈。那么在那种情况下,您必须从导航堆栈中弹出该视图控制器。
试试下面的代码
[self.navigationController popViewController:yourViewController animated:YES];