如何弹出到不在堆栈中的特定视图控制器?

时间:2013-11-22 12:25:27

标签: ios uinavigationcontroller

我有一个视图,用户可以将数据添加到表中,并且可以从应用程序的多个位置访问它。但是当用户在此视图中按下按钮时,我希望他回到特定的视图,而不仅仅是他来自的任何视图。

我试图谷歌这个,但我找不到任何方法。

据我所知,我需要首先将所需的视图推送到堆栈然后弹出它。但是当我这样做时,按下按钮时我得到的只是一个黑屏。

如何解决这个问题?

2 个答案:

答案 0 :(得分:3)

也许你可以尝试一下:

-(void)popToSpecificViewController:(UIViewController *)controller
{
    NSMutableArray *mutableVCArray = [NSMutableArray arrayWithArray:self.navigationController.viewControllers];
    [mutableVCArray insertObject:controller atIndex:mutableVCArray.count-1];
    [self.navigationController setViewControllers:mutableVCArray animated:NO];
    [self.navigationController popViewControllerAnimated:YES];
}

答案 1 :(得分:1)

你可以使用 segue 来推送那个视图控制器,无论如何都可以通过ctrl用ctrl来拖动它并拖动到特定的视图来创建segue,或者你可以用编程方式来编写它您提到的按钮的IBAction,如下所示:

UIViewController *controller = [self.storyboard instantiateViewControllerWithIdentifier:@"DestinationController"];
[self.navigationController pushViewController:controller animated:YES];