弹出到下一个视图控制器iOS

弹出到下一个视图控制器iOS,ios,objective-c,Ios,Objective C,我有5-6个视图控制器。我试图弹出到特定的视图控制器。就像我有第一个视图名称“来宾”第二个视图名称“供应商”第三个视图名称“地址”。现在我在“地址”视图中,我想进入“来宾”视图。但这不会正确发生。任何人都可以帮我。下面是我用来从视图中弹出的给定代码 - (void)addButtonAction { if([selectVisitor.text isEqualToString:[NSString stringWithFormat:@"Guest"]]) { NSL

我有5-6个视图控制器。我试图弹出到特定的视图控制器。就像我有第一个视图名称“来宾”第二个视图名称“供应商”第三个视图名称“地址”。现在我在“地址”视图中,我想进入“来宾”视图。但这不会正确发生。任何人都可以帮我。下面是我用来从视图中弹出的给定代码

- (void)addButtonAction
{
    if([selectVisitor.text isEqualToString:[NSString stringWithFormat:@"Guest"]])
    {
        NSLog(@"NISha");
        for (UIViewController *Controller in self.navigationController.viewControllers)
        {
            if ([Controller isKindOfClass:[GuestView class]])
            {
                [self.navigationController popToViewController:Controller animated:YES];
                break;
            }
        }
    }
}
试试这个

- (void)addButtonAction {

    if([selectVisitor.text isEqualToString:[NSString stringWithFormat:@"Guest"]])
    {
        BOOL flag = FALSE;
        for (UIViewController *Controller in self.navigationController.viewControllers)
        {
            if ([Controller isKindOfClass:[GuestView class]])
            {
                [self.navigationController popToViewController:Controller animated:YES];
                flag = TRUE;
                break;
            }
        }
    }
    if(!flag) {
        GuestView *controllerObject = [[GuestView alloc] initWithNibName:@"GuestViewNibName" bundle:nil];
        [self.navigationController pushViewController:controllerObject animated:YES];
    }

}
[self.navigationController popToRootViewControllerAnimated:YES];
试试这个

- (void)addButtonAction {

    if([selectVisitor.text isEqualToString:[NSString stringWithFormat:@"Guest"]])
    {
        BOOL flag = FALSE;
        for (UIViewController *Controller in self.navigationController.viewControllers)
        {
            if ([Controller isKindOfClass:[GuestView class]])
            {
                [self.navigationController popToViewController:Controller animated:YES];
                flag = TRUE;
                break;
            }
        }
    }
    if(!flag) {
        GuestView *controllerObject = [[GuestView alloc] initWithNibName:@"GuestViewNibName" bundle:nil];
        [self.navigationController pushViewController:controllerObject animated:YES];
    }

}
[self.navigationController popToRootViewControllerAnimated:YES];
试试这个

- (void)addButtonAction {

    if([selectVisitor.text isEqualToString:[NSString stringWithFormat:@"Guest"]])
    {
        BOOL flag = FALSE;
        for (UIViewController *Controller in self.navigationController.viewControllers)
        {
            if ([Controller isKindOfClass:[GuestView class]])
            {
                [self.navigationController popToViewController:Controller animated:YES];
                flag = TRUE;
                break;
            }
        }
    }
    if(!flag) {
        GuestView *controllerObject = [[GuestView alloc] initWithNibName:@"GuestViewNibName" bundle:nil];
        [self.navigationController pushViewController:controllerObject animated:YES];
    }

}
[self.navigationController popToRootViewControllerAnimated:YES];
试试这个

- (void)addButtonAction {

    if([selectVisitor.text isEqualToString:[NSString stringWithFormat:@"Guest"]])
    {
        BOOL flag = FALSE;
        for (UIViewController *Controller in self.navigationController.viewControllers)
        {
            if ([Controller isKindOfClass:[GuestView class]])
            {
                [self.navigationController popToViewController:Controller animated:YES];
                flag = TRUE;
                break;
            }
        }
    }
    if(!flag) {
        GuestView *controllerObject = [[GuestView alloc] initWithNibName:@"GuestViewNibName" bundle:nil];
        [self.navigationController pushViewController:controllerObject animated:YES];
    }

}
[self.navigationController popToRootViewControllerAnimated:YES];


为什么
popToViewController
?保存一些数据后,我想进入保存数据的视图,这就是为什么我想弹出到guest
popToViewController
视图的原因。只有当您的
navigationController
堆栈中有该视图时,它才会起作用。您使用了错误的方法。使用-
(void)prepareforsgue:(UIStoryboardSegue*)segue sender:(id)sender{//your code}
取而代之。那么我是如何知道我的堆栈中是否有该视图的呢???为什么
popToViewController
?保存一些数据后,我想进入该视图中保存数据的位置,这就是为什么我想弹出该视图,即guest
popToViewController
,只有当您的堆栈中有该视图时,该视图才会起作用
navigationController
stack。您使用了错误的方法。使用-
(void)prepareforsgue:(UIStoryboardSegue*)segue sender:(id)sender{//your code}
。那么我如何知道我的堆栈中是否有该视图?哪个问题?你能分享你的问题链接吗。。。。检查链接,先生:p@MayankJain,您如何知道视图控制器已在导航控制器堆栈中??如果她没有访问特定的视图控制器,该怎么办
popToViewController
仅当您的
navigationController
堆栈中有该视图时才起作用。检查她的代码,请先阅读所有其他注释。@Sujay您在20分钟前更新了答案。现在这是正确的。。。在此之前,您每次都试图推送VC。@MayankJain,这是真的,我以前的代码每次都在
navigationController
堆栈中推送
viewController
。但是您的评论“为什么要推一个已经在导航层次结构中的视图控制器?”也是没有建设性的。顺便说一句,lalit的回答完全错了,因为她试图跳到特定的视角。哪个问题?你能分享你的问题链接吗。。。。检查链接,先生:p@MayankJain,您如何知道视图控制器已在导航控制器堆栈中??如果她没有访问特定的视图控制器,该怎么办
popToViewController
仅当您的
navigationController
堆栈中有该视图时才起作用。检查她的代码,请先阅读所有其他注释。@Sujay您在20分钟前更新了答案。现在这是正确的。。。在此之前,您每次都试图推送VC。@MayankJain,这是真的,我以前的代码每次都在
navigationController
堆栈中推送
viewController
。但是您的评论“为什么要推一个已经在导航层次结构中的视图控制器?”也是没有建设性的。顺便说一句,lalit的回答是完全错误的,因为她试图跳到特定的视角。