是否可以在 didFinishWithResult 中显示模态视图控制器?
我有一个 iPad 应用程序,它有 3 个视图 Home、Start 和 Login。可以使用主页视图中的开始和登录按钮启动开始和登录模式视图。
如果单击登录按钮,在登录视图中成功登录操作 (didFinishWithResult) 后,我可以关闭登录视图,但我无法启动开始视图。但控件仍保留在主视图上。
对于上述情况,我没有收到任何错误。
应用代理.m:
self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease];
HomeViewController * homeview=[[HomeViewController alloc] init];
UINavigationController *navigationController = [[UINavigationController alloc] initWithRootViewController:homeview];
self.rootViewController = navigationController;
[navigationController setNavigationBarHidden:YES];
self.rootViewController.view.frame = [[UIScreen mainScreen] applicationFrame];
[self.window addSubview:self.rootViewController.view];
[window makeKeyAndVisible];
下面是在主视图中展示登录模式视图的方法
呈现登录模式视图
LoginViewController * vc1 = [LoginViewController loginViewControllerWithNavBar:YES];
vc1.boxLoginDelegate = self;
[self presentModalViewController:vc1 animated:YES];
注意:LoginVeiwController 是由 HomeViewController 呈现的模态视图控制器。通过解除 LoginVeiwController 来启动/呈现另一个模态视图控制器(启动控制器)是否正确,如下所示。因为每当 LoginVeiwController 关闭时,控件都会保留在 HomeVeiwContrller 上,而不是启动/呈现 StartViewController:
主页视图:
下面是主视图中的方法,它将在成功登录时关闭登录视图并尝试启动开始视图。
- (void)loginViewController:(LoginViewController *)loginViewController didFinishWithResult:(LoginResult)result {
[self dismissModalViewControllerAnimated:YES];
startview = [[[startViewController alloc] init] autorelease];
[self.navigationController setNavigationBarHidden:YES];
[self presentModalViewController:startview animated:YES];
}
如果我在单击按钮时直接显示 StartView,它会很好地启动,但不会在 didFinishWithResult 上启动