我对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];
什么都没发生。不知道如何解雇它。 任何人都可以为此解决问题吗? 提前谢谢!
答案 0 :(得分:1)
根据documentation dismissViewControllerAnimated
解散由模态呈现的视图控制器 接收机。
因此,这适用于模态呈现的控制器,对于导航堆栈,请改用unwind segues。
答案 1 :(得分:1)
[self dismissViewControllerAnimated:YES completion:nil];
当视图控制器出现时,上面的语句会关闭视图控制器。
如果您使用“PUSH”或“SHOW”,那么您的视图控制器将推送到导航堆栈。那么在这种情况下你必须从导航堆栈POP视图控制器。
尝试以下代码
[self.navigationController popViewController:yourViewController animated:YES];