gpt4 book ai didi

iphone - 隐藏所有模态视图 Controller

转载 作者:技术小花猫 更新时间:2023-10-29 11:09:30 25 4
gpt4 key购买 nike

我有一个显示为 ModelViewController 的登录 View ,我有一个在其顶部显示为 NavigationControlloer 的注册 View :

登录( Model View Controller )---->注册(NavigationController)

我在登录 View 中呈现注册 View (CreateAccount)如下:

createAccount= [[CreateAccount alloc] initWithNibName:@"CreateAccount" bundle:nil];

navController = [[UINavigationController alloc] initWithRootViewController:createAccount];

UIBarButtonItem *cancelButtun=[[UIBarButtonItem alloc]initWithTitle:@"Cancel" style:UIBarButtonItemStyleBordered target:self action:@selector(HideMe)];

UIBarButtonItem *registerButtun=[[UIBarButtonItem alloc]initWithTitle:@"Register" style:UIBarButtonItemStyleBordered target:self action:@selector(Register)];

createAccount.navigationItem.leftBarButtonItem = cancelButtun;
createAccount.navigationItem.rightBarButtonItem=registerButtun;
createAccount.title=@"Create Account";

[self presentModalViewController:navController animated:YES];

登录 Controller 有 NSURLConnectionDelegate 用于登录和注册。注册完成后,我只需调用

[self dismissModalViewControllerAnimated:YES];

这只会关闭注册 View 。

我也想关闭登录 View ,这样我就可以返回到我的主应用程序。

最佳答案

调用 dismissModalViewController 将在当前 View Controller 未提供任何模态 Controller 时调用其父级上的方法。在 View Controller 上调用该方法会将所有呈现给该 Controller 的模态视图 Controller 解除。举例说明:

如果您有三个 View Controller :vc1、vc2 和 vc3,并且 vc1 是主要/当前使用的 View Controller 。

  1. 在 vc1 中,您呈现模态 vc2。在 vc2 中,您随后调用 dismiss,因为没有从 vc2 呈现的模态 vc,dismiss 消息被传递给父级 (vc1),它关闭 vc2,然后您回到 vc1。

  2. 在 vc1 中呈现模态 vc2,然后从 vc2 呈现模态 vc3。在 vc3 中调用 dismiss 会将消息发送到其父级 (vc2),后者将关闭 vc3。要同时关闭 vc2 和 vc3,您需要在 vc1 中调用 dismiss,这将关闭所有(两​​个)模态视图 Controller 。如果关闭动画,则只有第一个动画。

解决此问题的最佳方法之一是始终使用导航 Controller 。即,不是最初使用 modalViews 来呈现登录 View ,而是使用 navigationViewcontroller 本身。如果您需要出示注册页面。插入那个观点。如果您需要转到初始 View (即除了 loginView 或 registrationView),则使用 navigationViewcontroller 中的 popToRootViewControllerAnimated 方法。

关于iphone - 隐藏所有模态视图 Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8672010/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com