Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/115.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 当第一次按下vc,然后显示12次模态vc时,如何弹出?_Iphone_Ios_Ipad - Fatal编程技术网

Iphone 当第一次按下vc,然后显示12次模态vc时,如何弹出?

Iphone 当第一次按下vc,然后显示12次模态vc时,如何弹出?,iphone,ios,ipad,Iphone,Ios,Ipad,我有一个导航控制器。我先推了一个VC,然后介绍了12个模态VC。现在我想跳到根视图控制器。我该怎么做?请帮帮我。对不起,我不确定我是否正确理解了你的问题。 但是UINavigationController的 -(NSArray*)PoptorootViewController动画:(BOOL)动画 您正在搜索什么?您需要取消显示的12个模态视图。popViewController或popToRootViewController将不起作用。如果您有导航控制器,并且想要享受在一个命令中弹出多个级别的

我有一个导航控制器。我先推了一个VC,然后介绍了12个模态VC。现在我想跳到根视图控制器。我该怎么做?请帮帮我。

对不起,我不确定我是否正确理解了你的问题。 但是UINavigationController的
-(NSArray*)PoptorootViewController动画:(BOOL)动画

您正在搜索什么?

您需要取消显示的12个模态视图。popViewController或popToRootViewController将不起作用。

如果您有导航控制器,并且想要享受在一个命令中弹出多个级别的好处,那么您应该使用
pushViewController
(或push segues)而不是
presentViewController
(或模式segues)

正如其他人所指出的,如果您正在更正对后续控制器的推送,那么您可以通过以下方式返回:

[self.navigationController popToRootViewControllerAnimated:YES];

关闭模式视图以进入根视图。

告诉推送的VC以
关闭视图控制器初始化:完成:
。这将驳回所有提交的风险投资。现在可以弹出推送的VC。

在AppDelegate的实例变量中保留第一个NavigationController。在AppDelegate.h中

@property (nonatomic, retain) UINavigationController *navigationControllerFirst;
在RootViewController viewDidLoad中添加以下内容

- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.
    AppDelegate *app = (AppDelegate *)[[UIApplication sharedApplication] delegate];
    app.navigationControllerFirst = self.navigationController;
}
然后,为了实现您想要的,在第12个模式中添加以下函数以返回到RootViewController

- (IBAction)GoToHome:(id)sender {
    AppDelegate *app = (AppDelegate *)[[UIApplication sharedApplication] delegate];
    [app.navigationControllerFirst dismissViewControllerAnimated:YES completion:^{
        [app.navigationControllerFirst popToRootViewControllerAnimated:YES];
    }];
}

你能不能重新表述一下你的问题,并详细说明谁在什么时候推什么,等等?我有一个导航控制器,我先把它推到另一个控制器上,然后在这个控制器上展示12个控制器,现在我想回到第一个。好吧,这是完全不同的。正如我所说的-我一开始没有回答你的问题。如果你有导航控制器,如果你想使用
popToViewController
技术跳回多个控制器,那么你应该使用
pushViewController
(或push segues)而不是
presentViewController
(或模态segues)1.但是我怎么能做到这一点呢Question@JunaidSidhu:关闭显示的视图控制器。你需要自己在代码中处理这个问题,因为从你的问题来看,用户不会是拒绝视图的人,或者是吗?事后想想,你为什么不推送视图而不是以模式显示它们?通过使用popToRootViewController,你可以完全消除这个问题。Kevin,我同意你自己忽略多个情态动词是一种扭曲,但这很愚蠢@JunaidSidhu应该只是推到下一个视图控制器,而不是执行模态。如果Junaid不希望导航栏显示在这些子项上,它可以隐藏
[self.navigationController setNavigationBarHidden:YES动画:NO]我支持这一点,我不明白为什么会有这么多情态动词。